Archiv verlassen und diese Seite im Standarddesign anzeigen : Datenbank Suche Durch Script
Hallo,
also folgendes, habe mich neu registriert hier und evtl kann mir wer hier weiterhelfen. Ich habe eine Wortliste die umfasst ca. 50.000 Wörter
diese habe ich nun in eine MySql Tabelle importiert mit dem Namen
"LISTE" und jeweils eine Spalte/Zeile pro Wort.
Nun bräuchte ich eine Internetseite wo ich mittels eines simplem Suchscript
nach einzelden Wörtern aus dieser Tabelle suchen kann .
sprich ich suche nach "AUTO" und er sucht die Tabelle der db ab und gibt als Ergebnis "AUTO" aus, und das möglichst schnell.
Vielleicht hat da irgendwer was für mich womit ich das lösen könnte.
Muss nicht unbedingt ein fertiges script sein, aber schlecht wärs nicht :)
Vielen Dank soweit
Gruß
Marcusson 01-03-2006, 14:31 :teach: Die Lösung: erstmal LESEN!
Wenn du dich mit SQL beschäftigt hättest wäre dir aufgefallen, dass du das mit einem Index und einer simplen Select-Abfrage selbst machen kannst.
Also: ein gutes Buch zu SQL hilft dir weiter.
Schau dir besser echt mal einige tutorials an, ist eigentlich ganz simpel.
Zur Orientierung kannst mal das nehmen:
select * from liste where spaltenname LIKE '%auto%'
habe leider noch nie in php mysql gecodet , vielleicht könnte mir einer einen beispiel code posten damit ich bischen weiß wie ich anzufangen hab mit so ner simplen abfrage, ne einzelnde code stelle wie SELECT hilft mir da kaum weiter bzw das es damit zu lösen ist hab ich auch schon erfahren *g*
thx
schon mal was von :google: gehört?
http://de3.php.net/manual/de/function.mysql-fetch-array.php
Bin schon mal ein Stückchen weiter hab einfach mal drauf los experimentiert
1. Habe ich eine Html Seite gebastelt wo mittels eines einfachen Texteingabefeldes + formular die Eingaben weitergeben werden an
abfrage.php ( Das Php Script was nun checken soll ob es das zu suchende wort in der tabelle meiner Datenbank gibt und es dann wiederum ausgeben. Es soll allerdings erstmal nur so sein das exakt das Wort ausgeben wird nach dem man gesucht hat (wenn es vorhanden ist) und nicht mehr, wie dekladier ich da die Variablen richtig evtl ist noch mehr falsch, hier mal mein erster Versuch.
<?php
/* Verbindung aufbauen, auswählen einer Datenbank */
$link = mysql_connect("localhost", "root", "")
or die("Keine Verbindung möglich: " . mysql_error());
echo "Verbindung zum Datenbankserver erfolgreich";
mysql_select_db("liste") or die("Auswahl der Datenbank fehlgeschlagen");
/* ausführen einer SQL Anfrage */
$query = "SELECT * FROM liste";
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());
/* Ausgabe der Ergebnisse in HTML */
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($line as $col_value) {
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>\n";
/* Freigeben des Resultsets */
mysql_free_result($result);
/* schliessen der Verbinung */
mysql_close($link);
?>
Vielen Dank erstmal
jahlives 01-03-2006, 18:58 In diesem Code suchst du aber nach gar nix, sondern liest alle Einträge aus der DB.
$sql = "Select * From tabelle where name='$suchfeld'";
würde allenfalls die Treffermenge einschränken.
Pass aber bei der Übernahme der Werte aus dem Form in deine Abfrage auf und prüfe die Werte aus Gültigkeit --> mysql injections
Gruss
tobi
Formular sieht so aus:
<form action="abfrage.php" method="post" name="form" target="bottom" id="form1">
<label>
<div align="center"><span class="Stil1">Suche:
</span>
<input type="text" name="suche" />
SELECT...
"SELECT * FROM liste WHERE name='$suche'";
FEHLER...
Unknown column 'name' in 'where clause'
1. heißt deine spalte in der mysql tabelle in der du suchst "name" ?
2. Könntest noch Wildcards dazugeben WHERE name='%$suche%'
3. warum haben id und name der form tags unterschiedliche benennungen ?
Also habe nun noch mal die form geändert
name="suche" id="suche"
und
"SELECT * FROM liste WHERE name='suche'";
wobei ich mal ne neue tabelle "liste" gemacht hab wo nun auch collumn oder wie sie das nennt :) "name" ist war zu erst AA oder so (mein fehler)
nun bekomm ich aber einfach als ERGEBNIS garnichts angezeigt
also mein echo von IHR ERGEBNIS :
.. und dann nichts
irgendwie hab ich das Gefühl das da noch komplett etwas fehlt,
ich mein wo überprüft er denn auf richtig oder falsch
fehlt da nicht ne if else schleife oder so?
jahlives 02-03-2006, 12:21 Also dann wirst du jetzt wohl debuggen müssen. Folgende Fkt könnten dir dabei helfen
-print_r()
-var_dump()
Lass dir damit an verschiedenen Stellen deine Mysql Vars ausgeben und schau ob das gültige MySql Ressourcen sind. Prüfe schlicht alle Vars ob sie die Werte haben die du erwartest.
Dann wirst du den Fehler sicherlich finden.
Gruss
tobi
hm glaube eher das das script selbst noch nicht vollständig ist ist poste noch mal
DB = wordox Tabelle = liste
<?php
/* Verbindung aufbauen, auswählen einer Datenbank */
$link = mysql_connect("localhost", "root", "")
or die("Keine Verbindung möglich: " . mysql_error());
echo "Verbindung zum Datenbankserver erfolgreich, Ihr Ergebnis:";
mysql_select_db("wordox") or die("Auswahl der Datenbank fehlgeschlagen");
/* ausführen einer SQL Anfrage */
$query = "SELECT * FROM liste WHERE AA='$suche'";
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());
/* Ausgabe der Ergebnisse in HTML */
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($line as $col_value) {
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
}
echo "</table>\n";
/* Freigeben des Resultsets */
mysql_free_result($result);
/* schliessen der Verbinung */
mysql_close($link);
?>
|