Suche durch eine DB mit AND verknüpfung geht ned korrekt

Subwoover

Erfahrenes Mitglied
Ich habe eine Suchseite gebaut die aus einer DB zutreffende Daten ausliest und ausgibt.

Nun gut, aber ich habe da zB 8 Felder und alle mit einer

...WHERE vorname like '$vorname' AND...

Wenn ich jetzt zum beispiel von einem exestierenden EIntrag 4 von 8 Sachen angebe, korrekt also alles passt, dann gibt er mit nichts aus.

Kann das an den AND verbindungen liegen?
Sind bei einem leeren input die abfragevariablen auch definiert?
Oder wie muss ich das machen?
 
wenn mysql_error() nichts ausgibt, dann ist dein query richtig ... muss aber noch lange nicht heissen das auch etwas zurueckkommt. kurz: er findet nix ;)
 
Bei AND müssen alle Bedingungen erfüllt sein! Das ist genau das was es bewirkt. Sprich alle 8 felder müssen korreckt sein. OR ist ein NICHT exklusives Oder. Sprich mindestens eine Bedingung muss erfüllt sein!
 
hmm

Bei OR zeigt es dir dann alle an bei denen nur EINE der Bedingungen richtig ist.. ich glaub du willst dass es nur die anzeigt bei denen die Angaben stimmen die du angibst.

Also musste mit AND arbeiten. Ich glaube dein Fehler war die restlichen 4 Felder leer zu lassen... (bin mir net sicher ob des bei LIKE was macht aber kannst ja mal ausprobieren alle Felder auszufüllen.)

Wenn das so wie ich vermute musste ne kleine Schleife einbauen die überprüft ob etwas in den Feldern steht oda nich

des müsstes eigentlich auch schon sein...

::Mr.Mista::
 
Naja es ist so:

Das wird eine Holteseite, bei der man eingetragene Hotels suchen kann und man hat zB 8 Felder.

Wenn der Benutzer jetzt nur in 1 was reinschreibt soll natürlich alle die was mit dem angegebenen zu tun haben ausgegeben werden.

Wenn er alle angibt dann soll eine detailsuche gestartet werden die alles genau überprüft...
aber wenn er nun 1 ausfüllt (richtig) und die anderen leer lässt dann ist bei meiner AND verknüpfung der konflikt dass er nichts ausgibt...

wahrscheinlich weil er so sucht:
Vorname = franz, nachname ="", hotelname ="" ...
oder?
 
dann bau dein query nach dem schema auf:

select distinct * from tabelle where irgendwas='sonstwas' AND (blahblah LIKE '%".$suchbegriff."%' OR blahblah2 LIKE '%".$suchbegriff."%')

in der klammer kannst du die zu durchsuchenden spalten natuerlich beliebig erweitern ...
 
Zurück