suche nicht genau wählen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anpassung
code
ergebnis
funktion
hund
katze
kleinschreibung
mache
meckern
optimieren
ordern
spalte
stichwort
string
suche
syntax
tabelle
tier
verbindung
wort
-
ich hab mal eine kleine suchfunktion gemacht jetzt muss ich aber das wort immer moch genau eingeben und nicht nur ungefähr d.h. ich hab mal zwei sachen in die tabelle getan einmal hund einmal katze ich muss jetzt aber immer ganau katzte eingeben und nicht nur kat. wie schaffe ich es jetzt das er trozt 'unvollständigem' namen das er mir trotzdem katze auswirft?
hier mein script
<?php $nach = $_GET['nach']; $verbindung=mysql_connect('localhost', 'root', '' ); mysql_select_db('suche'); function search($nach) { $search = "SELECT * FROM tiere WHERE name='$nach'"; $get = mysql_query($search); while($row = mysql_fetch_object($get)) { echo $row->name; echo "<br>"; } } echo "Deine Suche nach $nach ergab folgende Treffer:<br>"; search($nach); mysql_close($verbindung); ?>
mfg andré
Beitrag geändert: 9.10.2008 15:39:44 von andre-morillon -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
sorry aber wenn ich das so mache kommt
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIKE '%katze%' ORDER BY name' at line 1
wenn ich das ganze ohne funktion mache geht es aber, nur warum??
mfg andré
Beitrag geändert: 9.10.2008 15:33:57 von andre-morillon -
Hi,
also erstens:
Warum machst du dir die Mühe, dir die Suchfunktion selber zu schreiben?
Man kann die Google-Suche so optimieren, das sowohl das Suchfeld auf deiner Seite eingebunden ist, nur deine Seite durchsucht wird und die Ergebnisse auch auf deiner Seite eingebunden werden, einfach mal googlen...
zweitens:
wäre es sehr schön, wenn du Hilfe willst, dass du dir wenigstens die Zeit nimmst, mal ordentliches Deutsch zu schreiben. Ich will ja nicht meckern, ich schreibe auch als sehr hastig. Aber wenn dadurch deine Frage ungenau wird ist es halt sch*
drittens:
du meinst, wenn du "kat" eingibst findet er dir nicht "katze"?
weil du nicht deine Werte durchsuchst, sondern einfach nach einem BESTIMMTEN Wert in der Tabelle suchst.
Wie wäre es, wenn du einfach den Wert in $search auf deinen gesuchten überprüfst?
Du müsstest ja jetzt, nachdem du die Datenbankabfrage gemacht hast, den Tiernamen in $search haben. Da gibt es jetzt eine Funktion namens strcmp (such mal bei google), mit der du zwei string vergleichen kannst und auch anhand der Rückgabewerte herausbekommen kannst, ob string a in string b enthalen ist.
Viel Spass
Beitrag geändert: 9.10.2008 15:36:12 von tel08a-bama -
mach mal folgendes:
bevor du den SQL String ausführst packst du den in eine variable und gibst den aus.
dann Postest du die Augabe:
$sql = "SELECT * FROM `tabelle` WHERE `Name` LIKE '%kat%'"; echo $sql; mysql_query($sql)
-
Unknown column '' in 'where clause'
das gibt er aus(natürlcih unter anpassung des tabellen namens)
Beitrag geändert: 9.10.2008 15:45:21 von andre-morillon -
Unknown column '' in 'where clause'
das gibt er aus(natürlcih unter anpassung des tabellen namens)
Beitrag geändert: 9.10.2008 15:45:21 von andre-morillon
Auch die Groß-/Kleinschreibung beim Spaltennamen angepasst? -
Also der Fehler deutet auf in etwa so eine Query hin:
$sql = "SELECT * FROM `tabelle` WHERE `` LIKE '%kat%'";
Wo Der Spaltenname leer ist.
zwischen den '' müsste nämlich der Spaltename stehen.
Die Fehlermeldung lautet normaler Weise:
Unknown column 'Spalte' in 'where clause'.
Du solltest ja vor dem Ausführen der Query den SQL String ausgeben und posten.
$sql = "SELECT * FROM `tabelle` WHERE `Name` LIKE '%kat%'"; echo $sql; mysql_query($sql)
Wie du siehst steht echo $sql vor mysql_query.
Gruß
xelax90
Beitrag geändert: 10.10.2008 12:50:52 von xelax90 -
ich habs jetzt hinbekommen
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage