Hallo,
also, ich versuche ein Wörterbuch für spezielle Wörter anzulegen. Die MYSQL Tabelle habe ich angelegt, die Eingabemasken um die Tabelle mit neuen Wörtern zu füllen oder um bestehende Einträge zu ändern sind fertig und funktionieren auch. Der letzte Teil, die eigentliche suchfunktion, funktioniert eigentlich auch, eben nur unvollständig.
In der Tabelle gibt es 12 Spalten, eine Spalte mit einer fotlaufenden Nummer die automatisch generiert wird, eine Spalte mit "Autor", eine "Bemerkungen", und dann neun Spalten die die unterschiedlichen Übersetzungen des Wortes beinhalten. "german1" - "german3", english1-3 und russia1-3.
Wenn ich in mein Suchformular ein Wort eingebe, wird im moment erstens nur eine Spallte durchsucht, nämlich "german1", mein erstes Problem ist also, wie muss ich den query abändern damit er alle 9 Spalten durchsucht, und 2tens, wenn er im moment Sachen findet, dann gibt er nur die fortlaufende Nummer aus, also er findet die richtige Zeile in der Tabelle, und gibt die erste Zelle aus, er soll aber ALLE 9 Übersetzungen ausgeben, nicht nur die erste Zelle in der die Nummer steht. Wie muss ich die Ausgabe abändern, damit alle Daten ( also die gesamte Zeile ) ausgegeben wird?
Wäre super wnen irh mir helfen könnt. Meien PHp Kentnisse sind leider doch noch nicht sehr weit fortgeschritten und basieren mehr auf anpassen udn erweitern udn abändern als auf komplett selber schreiben...
Einmal die Eingabemaske der Suche: (Auf das wesentliche reduziert!)
und hier der verarbeitende Teil:
Anmerkung:
$db_newstabelle2 ist gleich "german1", also das ist der Punkt wo ich will das auch gleichzeitig die 8 weiteren Spalten durchsucht werden.
Also, würde mich riesig freuen wenn mir jemand helfen kann, der erste Punkt, wie ich statt der einen Spalte alle 9 Spalten durchsuche ist wahrschienlich nur eine kleine Sache die ich abändern muss, die zwiete Frage dagegen wohl etwas umfangreicher, ich hoffe...
also, ich versuche ein Wörterbuch für spezielle Wörter anzulegen. Die MYSQL Tabelle habe ich angelegt, die Eingabemasken um die Tabelle mit neuen Wörtern zu füllen oder um bestehende Einträge zu ändern sind fertig und funktionieren auch. Der letzte Teil, die eigentliche suchfunktion, funktioniert eigentlich auch, eben nur unvollständig.
In der Tabelle gibt es 12 Spalten, eine Spalte mit einer fotlaufenden Nummer die automatisch generiert wird, eine Spalte mit "Autor", eine "Bemerkungen", und dann neun Spalten die die unterschiedlichen Übersetzungen des Wortes beinhalten. "german1" - "german3", english1-3 und russia1-3.
Wenn ich in mein Suchformular ein Wort eingebe, wird im moment erstens nur eine Spallte durchsucht, nämlich "german1", mein erstes Problem ist also, wie muss ich den query abändern damit er alle 9 Spalten durchsucht, und 2tens, wenn er im moment Sachen findet, dann gibt er nur die fortlaufende Nummer aus, also er findet die richtige Zeile in der Tabelle, und gibt die erste Zelle aus, er soll aber ALLE 9 Übersetzungen ausgeben, nicht nur die erste Zelle in der die Nummer steht. Wie muss ich die Ausgabe abändern, damit alle Daten ( also die gesamte Zeile ) ausgegeben wird?
Wäre super wnen irh mir helfen könnt. Meien PHp Kentnisse sind leider doch noch nicht sehr weit fortgeschritten und basieren mehr auf anpassen udn erweitern udn abändern als auf komplett selber schreiben...
Einmal die Eingabemaske der Suche: (Auf das wesentliche reduziert!)
PHP-Code:
<form action="" method="POST">
<input type="Text" name="searchfor" value="" size="30" maxlength="30">
<input type="submit" value="Search for Translation">
<input type="Radio" name="howtosearch" value="AND">
<input type="Radio" name="howtosearch" value="OR">
</form>
und hier der verarbeitende Teil:
Anmerkung:
$db_newstabelle2 ist gleich "german1", also das ist der Punkt wo ich will das auch gleichzeitig die 8 weiteren Spalten durchsucht werden.
PHP-Code:
if(!isset($_POST['searchfor']) || $_POST['searchfor'] == "")
{
}
else
{
$search = $_POST['searchfor'];
$verbindung = $_POST['howtosearch'];
$words = explode(" ",$search);
$query = "SELECT * FROM " . $db_newstabelle2 . " WHERE ";
for ($i=0; $i<count($words); $i++)
{
$query .= "( " . $feldname . " like '%" . $words[$i] . "%' ) ";
if($i<count($words)-1)
{
$query .= " " . $verbindung . " ";
}
}
$conid = @mysql_connect($db_host,$db_user,$db_password);
$db = mysql_select_db($db_name,$conid);
$result = mysql_query($query,$conid);
if(mysql_affected_rows() > 0)
{
$num_found = mysql_num_rows($result);
//Anzahl der Treffer
echo '<p class=searchtext2>Search has been successful. ' . $num_found . ' results:<br><br>';
for($i = 0; $i < $num_found; $i++)
{
$textstring = mysql_result($result,$i);
$textstring = str_replace($words[$i], "<font color=\"red\"><b>".$words[$i]."</b></font>",
$textstring);
echo $textstring . "<hr>";
}
}else
{
echo 'Leider nichts gefunden :(';
}
mysql_close($conid);
}
Also, würde mich riesig freuen wenn mir jemand helfen kann, der erste Punkt, wie ich statt der einen Spalte alle 9 Spalten durchsuche ist wahrschienlich nur eine kleine Sache die ich abändern muss, die zwiete Frage dagegen wohl etwas umfangreicher, ich hoffe...
Kommentar