übersetzung

Ich überlege die ganze Zeit, mir fällt aber auch nichts besseres ein, vielleicht morgen wenn ich wacher bin als jetzt ;)
 
Würde das wohl so machen:

Tabelle 1: Die Hauptbegriffe nach denen gesucht werden soll
Code:
id | de | en
01 | .. | ..
02 | .. | ..
03 | .. | ..
04 | .. | ..

Tabelle 2: Die "verwandten" Begriffe
Code:
id | de | en
01 | .. | ..
02 | .. | ..
03 | .. | ..
04 | .. | ..

Jetzt das eklige... Tabelle 3: Einteilung
Code:
id | id2
01 | 01
01 | 02
01 | 04
02 | 01
02 | 02

Hier im Beispiel wäre dann Hauptbegriff 01 verwandt mit Nebenbegriff 01,02 und 04... Hauptbegriff 02 ist verwandt mit Nebenbegriff 01 und 02...

Hoffe das ist verständlich ;)
 
Zuletzt bearbeitet:
Aber wofür benötigst du denn Tabelle 2? ist die nicht überflüssig? Wenn man in Tabelle 1 die Begriffe hineinschreibt und dann deine Tabelle 3 zur Verwandschaftsdefinition benutzt, reicht das doch.
 
Das habe ich mich auch grade gefragt... xD
Aber DANKE :)
Diese beiden Tabellen erstelle ich mit dem Editor als txt-Datei oder?
Und dann? Muss ich auch die zweite Tabelle in die Datenbank einlesen oder wie?
Und wie funktioniert die Abfrage?
 
Zuletzt bearbeitet:
So wie ich das System verstanden habe, gibt es "Hauptbegriffe" die durchsucht werden.
Die "verwandten" Begriffe haben dann nichts in der Tabelle mit den "Hauptbegriffen" zu suchen.
Anders sieht es aus wenn auch nach den "verwandten" Begriffen gesucht werden soll, dann wäre wohl eine gemeinsame Tabelle sinnvoller.

Aber wie du das am Ende machst bleibt dir selbst überlassen, ich wollte nur einen Denkanstoß geben ;)

//
Nun ich würde das alles mit einer Datenbank lösen. Wobei auch eine Textdateilösung denkbar ist.
 
Zuletzt bearbeitet:
Jetzt bin ich total verwirrt... Also es sollen schon auch verwandte Begriffe durchsucht werden... wie mache ich das dann Ich komme grade nicht hinterher mit deiner Denkweise ;)
 
Eine Datenbank Tabelle mit den Begriffen und eine mit der Einteilung der "verwandtschaft", so wie XSxecutor das geschrieben hat ;)
 
Also ich habe jetz alles so gemacht, wie ihr es gesagt habt.
Ich habe zwei Datenbanken, die jeweils eine Tabelle enthalten.
Die erste Tabelle enthält die Spalten ID, Deutsch und Englisch.
Die zweite Tabelle enthält die ID-Nummern - eine Verwandtschaftsgruppe befindet sich jeweils in einer Spalte.
Es funktioniert soweit.

ABER:
Wie soll das jetzt aber mit der Ausgabe funktionieren?
Ich möchte ja dann alle Begriffe einer Verwandtschaftsgruppe in einer Tabelle ausgeben, in der sowohl die deutsche (linke Spalte) als auch die englische (rechte Spalte) Version steht.
Da müsste ich ja der ID wieder einen Wortwert zuordnen oder? Dann wären doch aber theoretisch die IDs unnötig gewesen... Ich habe das Gefühl, ich bin auf dem Holzweg... :(
Kann mir vielleicht jemand sagen, wie man das jetzt bewerkstelligen könnte?

MfG
 
Also ich würde die erste Tabelle mit den Spalten vocID, voc_de, voc_en und die 2. Tabelle mit den Spalten id1 und id2 anlegen und dann so verfahren:

PHP:
$Suchwort = $_POST['suche'];

//Abfrage nach Übersetzung und ID
$sql = "SELECT * FROM `Tabelle1` WHERE `voc_de` = `$Suchwort` OR `voc_en` = `$Suchwort`";
$query = mysql_query($sql);
$result = mysql_fetch_assoc($query);

$vocID = $result['vocID'];

//Ausgabe der Übersetzung
echo '<table border=1>';
echo '<tr><td><b>Übersetzung</b></td><td>&nbsp;</td></tr>';
echo '<tr><td>Deutsch</td><td>Englisch</td></tr>';
echo '<tr><td>'.$result['voc_de'].'</td><td>'.$result['voc_en'].'</td></tr>';
echo '<tr><td>&nbsp;</td><td>&nbsp;</td></tr>';

//Ausgabe der Verwandschaften mit deren Übersetzung
echo '<tr><td><b>Verwandte Wörter</b></td><td>&nbsp;</td></tr>';
echo '<tr><td>Deutsch</td><td>Englisch</td></tr>';

$sql = "SELECT * FROM `Tabelle2` WHERE `id1` = `$vocID`";
$query = mysql_query($sql);
$max = mysql_num_rows($query);
$max = $max-1;

//Ausgabe jeder einzelnen Verwandschaft durch while-Schleife
$sql = "SELECT * FROM `Tabelle2` WHERE `id1` = `$vocID` ASC LIMIT 0,$max";
$query = mysql_query($sql);
while($result = mysql_fetch_assoc($query)) {
  $relatedID = result['id2'];
  
  $sql_rel = "SELECT * FROM `Tabelle1` WHERE `vocID` = `$relatedID`";
  $query_rel = mysql_query($sql_rel);
  $result_rel = mysql_fetch_assoc($query_rel);
  
  echo "<tr>$result_rel['voc_de']<td><td>$result_rel['voc_en']</tr>";
}

echo '</table>';

Prüf mal bitte ob das klappt, ich habs jetzt eben kurz geschrieben und nicht geprüft.
 
Zuletzt bearbeitet von einem Moderator:
Zurück