mehrere Between's

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mehrere Between's

    Hallo,

    hab grad ein Problem mit ein paar betweens.

    Query bis jetzt:


    PHP-Code:
    $source $this->db->sql("SELECT
    userid, username, name, surname, street, email, homepage, 
    activation_handy, userposts, icq, aim, yim, msn, gender, zipcode, 
    wohnort, country, about_me, here_i_am, quote, handy, userpic, 
    language, beruf, musik, profil_views, show_street, show_town, region,
    signature, flirtfaktor, single, augenfarbe, haarfarbe, groesse, gewicht, 
    raucher,
    DATE_FORMAT(birthday, '%d') AS bday,
    DATE_FORMAT(birthday, '%m') AS bmonth,
    DATE_FORMAT(birthday, '%Y') AS byear, 
    DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW()) - TO_DAYS(birthday)), '%y') AS 'age',
    DATE_FORMAT(regdate , '%d.%m.%Y') AS reg_date
    FROM `mtk_users`
    WHERE `raucher` = '"
    .(int)$_POST["raucher"]."'
    AND `gender` = '"
    .(int)$_POST["gender"]."'
    AND `groesse` BETWEEN '"
    .(int)$_POST["groesse_min"]."' AND '".(int)$_POST["groesse_min"]."'"); 
    Funktioniert alles super. nur wenn ich den jetzt erweitern will mit

    AND `gewicht` BETWEEN '".(int)$_POST["gewicht_min"]."' AND '".(int)$_POST["gewicht_max"]."'

    Also wird der Query zu:
    PHP-Code:
    $source $this->db->sql("SELECT
    userid, username, name, surname, street, email, homepage, 
    activation_handy, userposts, icq, aim, yim, msn, gender, zipcode, 
    wohnort, country, about_me, here_i_am, quote, handy, userpic, 
    language, beruf, musik, profil_views, show_street, show_town, region,
    signature, flirtfaktor, single, augenfarbe, haarfarbe, groesse, gewicht, 
    raucher,
    DATE_FORMAT(birthday, '%d') AS bday,
    DATE_FORMAT(birthday, '%m') AS bmonth,
    DATE_FORMAT(birthday, '%Y') AS byear, 
    DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW()) - TO_DAYS(birthday)), '%y') AS 'age',
    DATE_FORMAT(regdate , '%d.%m.%Y') AS reg_date
    FROM `mtk_users`
    WHERE `raucher` = '"
    .(int)$_POST["raucher"]."'
    AND `gender` = '"
    .(int)$_POST["gender"]."'
    AND `groesse` BETWEEN '"
    .(int)$_POST["groesse_min"]."' AND '".(int)$_POST["groesse_min"]."'
    AND `gewicht` BETWEEN '"
    .(int)$_POST["gewicht_min"]."' AND '".(int)$_POST["gewicht_max"]."'"); 
    Nur so findet er nichts mehr.
    mysql_error(); und phpmyadmin spucken auch keine fehler aus.

    Jemand ne Ahnung woran das liegt?
    Zuletzt geändert von Skaschy; 13.05.2005, 14:03.

  • #2
    1. wofür sind die expliziten Typenkonvertierungen gut, wenn du doch zwischen '' die Werte übergibst?

    2. schon mal per echo ausgegeben und die Abfrage überprüft?

    Kommentar


    • #3
      Hi asp2php

      Zu 1.--> n bissle sicherer *??* Laut PHP-Mag, mein ich da mal was gelesen zu haben


      Zu 2.--> der echo:

      Code:
      SELECT
      userid, username, name, surname, street, email, homepage,
      activation_handy, userposts, icq, aim, yim, msn, gender, zipcode,
      wohnort, country, about_me, here_i_am, quote, handy, userpic, 
      language, beruf, musik, profil_views, show_street, show_town, 
      region, signature, flirtfaktor, single, augenfarbe, haarfarbe, groesse,
      gewicht, raucher,
      DATE_FORMAT(birthday, '%d') AS bday,
      DATE_FORMAT(birthday, '%m') AS bmonth,
      DATE_FORMAT(birthday, '%Y') AS byear,
      DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW()) - TO_DAYS(birthday)), '%y') AS 'age',
      DATE_FORMAT(regdate , '%d.%m.%Y') AS reg_date
      FROM `mtk_users`
      WHERE `raucher` = '1'
      AND `gender` = '2'
      AND `groesse` BETWEEN '120' AND '213'
      AND `gewicht` BETWEEN '30' AND '150'
      Alles drin ,.. alles dran! Nur kommt halt kein error und auch kein ergebniss..

      Kommentar


      • #4
        hast du mal versucht, die zahlen auch als zahlen anzugeben? um das erst einmal auszuschließen? gibt es überhaupt solche datensätze - wenn du gewicht wegläßt, gibt es dann menschen mit gewicht wie angegeben? welchen datentyp haben gewicht etc.?

        laß mal nur
        Code:
        SELECT ..
        FROM ...
        WHERE `gewicht` BETWEEN '30' AND '150'
        ausgeben ... ergebnis? ergebnis ohne ' '?
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          Hallo,

          Habe grade mal die sql-spalten gewicht & groesse auf INT(5) gestellt, nun funktioniert es.
          Hatte es vorher auf VARCHAR(255).

          Query wie unten, unverändert.

          Danke derHund, beim Satz: "welchen datentyp haben gewicht etc.?", hats bei mir geklingelt

          Kommentar

          Lädt...
          X