Neuling bei SELECT

  • Ich bin noch nicht so gut in Datenbankabfragen.....kann einer einen Grund sehen, warum ich hier keine Ergebnisse bekomme?

    $sql ="SELECT * FROM `User` WHERE Nick LIKE '%".$Nick."%' AND AlterU >= '$Alterv' AND AlterU <= '$Alterb' "
    ."AND Groesse >= '$Groessev' AND Groesse <= '$Groesseb' AND Gewicht >= '$Gewichtv' "
    ."AND Gewicht <= '$Gewichtb' AND Augenfarbe = '$Augenfarbe' AND Haarfarbe = '$Haarfarbe' "
    ."AND Haarlaenge = '$Haarlaenge' AND Bart = '$Bart' AND Raucher = '$Raucher' AND PLZ LIKE '$PLZ' "
    ."AND Wohnort LIKE '%".$Wohnort."%' AND Bundesland = '$Bundesland' ";

    Nach einer Füllung mit Formulareingaben sieht das so aus:

    SELECT * FROM `User` WHERE Nick LIKE '%%' AND AlterU >= '14' AND AlterU <= '27' AND Groesse >= '100' AND Groesse <= '200' AND Gewicht >= '40' AND Gewicht <= '120' AND Augenfarbe = '%' AND Haarfarbe = '%' AND Haarlaenge = '%' AND Bart = '%' AND Raucher = '%' AND PLZ LIKE '%' AND Wohnort LIKE '%%' AND Bundesland = '%'

    Ich habe extra bei Alter, Größe und Gewicht ganz viel Spielraum gelassen und auch sonst alles mögliche leer gelassen.
    Ich hab in meiner Datenbank mindestens 3 Sätze, die passen würden

    Zum Beispiel:

    UserID Nick Passwort Email Bestaetigt Logged Geprueft AnmeldeDatum LastVisit Geburtsdatum AlterU Groesse Gewicht Augenfarbe Haarfarbe Haarlaenge Bart Raucher PLZ Wohnort Bundesland PicURL Freitext

    1 BlueWonder XXX BlueWonder78@web.de 1 0 1 2003-05-02 19:55:00 2004-05-10 16:53:54 1978-09-06 25 178 67 grün braun kurz nein nein 45147 Essen Nordrhein-Westfalen

    Sorry, wenn das ws unübersichtlich is

  • Ich versuchs mal:

    - User also der Tabellenname brauch nichtt in Anführungsstrichen
    - Die ganzen Nummer Angaben (also nicht String) wie AlterU >= '14' brauchen auch nicht in Anführungsstrichen.
    - Benutz beim String Vergleich am besten immer like anstatt =
    - Anstatt z.B. Groesse >= 100 and groesse <= 200 benutz besser between, also Groesse between 100 and 200