Datenbank nach stichwörtern durchsuchen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
beschreibung
code
datenbank
durchsuchen
ergebnis
hilfe
komma
limit
re
spalte
start
statement
stehen
suche
suchen
uhr
url
versuchen
zeile
-
Hallo!
ICh wollte einmal fragen,ob es geht,eine ref="/tag/datenbank">Datenbank nach stihwörtern zu durchsuchen,so was wie eine suchfunktion!
Also ich mene Damit,er soll eine Spalte abfragen,in der lauter durch Komma getrennte begriffe stehen,wenn man dann zB nach Uhr sucht und in deiner Der Spalten steht Hose,Uhr,Taschenlampe[...],soll er die Gesammte Spalte anzeigen,und auch nachfolgende Spalten wo auch Uhr haben,soetwas wie eine Suchfunktion,nur mit einer Datenbank,und das von extern -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Eventuell hilft dir dir diese Tutorial http://www.php.de/tutorials/2282-erledigt-mysql-datenbank-durchsuchen.html
-
Du könntest es mal mit LIKE versuchen
Also:
SELECT * FROM xy WHERE spalte LIKE '%Uhr%'
Das Prozentzeichen gibt an, dass links, bzw, rechts von Uhr noch was stehen darf und es trotzdem ausgegeben wird.
Edit: Sehe grad, julian101 war schneller....
Beitrag zuletzt geändert: 23.12.2009 18:40:42 von rnitsche -
Das Tutorial versteh ich nicht so ganz un bei Like gibt r mir einen Feher in Zeile 107 an:
Hier die Zeieln 100 bis 113:
$start = $seite * $eintraege_pro_seite - $eintraege_pro_seite; $abfrage = "SELECT * FROM Idarus WHERE Link LIKE '%$Suche%', $eintraege_pro_seite"; $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_object($ergebnis)) { $Beschreibung = $row->Beschreibung; $Beschreibung = htmlentities($Beschreibung); $text = nl2br($Beschreibung); $Titel = $row->Titel; $Link = $row->Link; $Seite = $row->Seite;
-
Du hast einen Fehler in der Abfrage, da Du $eintraege_pro_seite eigentlich als Limit verwenden willst. Also kein Komma hinter like.
Probier es mal so:
"SELECT * FROM Idarus WHERE Link LIKE '%$Suche%' LIMIT $start, $eintraege_pro_seite";
Beitrag zuletzt geändert: 23.12.2009 19:09:26 von rnitsche -
Ok,ich hab das Tutorial doch mal versucht,doch es kommt nichts,wenn ich versuche zu suchen!
Hier der Code:
<font color="#0000FF" size="20">G</font><font color="#FF0000" size="40">h</font><font color="#0000FF" size="20">eim</font><font color="#FF0000" >BETA</font> <h3> Search Engine </h3> <form name="form1" method="post" action="<? $PHP_SELF ?>"> Suchbegriff: <input type="text" class="input" name="Link" size="40"> <input type="submit" name="Suchen" class="input" value="Suchen"><br><br> </form> <div style="background-color: #FF3535;border-top: dashed;border-color: #000000"> <a href="">Ihre Seite bei Geheim ?</a> </div> <?php $link = mysql_connect("mysql.lima-city.de","***","***") or die ("Keine Verbindung moeglich<br />Server möglicherweiße offline!"); mysql_select_db("db_159226_1") or die ("Die Datenbank existiert nicht"); $keywords = $_POST["Link"]; $association = 'AND'; $keywords = explode(" ",$keywords); $query = array(); foreach($keywords as $keyword) { $query[] = "( `Link` LIKE '%".$keyword."%' OR `Beschreibung` LIKE '%".$keyword."%' OR `Seite` LIKE '%".$keyword."%' OR `Titel` LIKE '%".$keyword."%' ) "; } $query = implode("\n ".$association." ",$query); $sql = " SELECT * FROM `Idarus` WHERE ".$query." "; $res = mysql_query($sql); if (!$res) { /** * Diese Zeilen geben das SQL-Statement in recht lesbarer Form aus. */ print '<pre>'; print $sql; print '</pre>'; /** * E_USER_ERROR führt zum Abbruch des Scripts. * E_USER_NOTICE und E_USER_WARNING, lassen das Script weiterlaufen */ trigger_error('Datenbankanfrage schlug fehl: '.mysql_error(), E_USER_ERROR); } else { /** * Hier die Routinen zum Auslesen der Suchergebnisse einfügen. */ } ?>
Und hier mal ein Beispiel in der Spalte "Link":
PHP,mySQL,Tutorial,Hilfe,Gästebuch,Buchtipps,Hilfe..
Edit
Problem gelößt!
Beitrag zuletzt geändert: 23.12.2009 19:42:39 von gaestefun -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage