tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
4366
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    saila saila ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Siegburg
    Beiträge
    742
    Hi,

    Frage zu meinem Query.
    (Folgender Query ist Bestandteil einer Funktion, wobei vorab noch einige Prüfungen erfolgen - allerdings nicht wichtig für die Antwort):

    PHP-Code:
    <?php
        
    //............
        
        
    if($_POST['ctsvbj'] != 0) { $bj .= "cuc.myborn >= '".$_POST['ctsvbj']."', "; }
        if(
    $_POST['ctsbbj'] != 0) { $bj .= "cuc.myborn <= '".$_POST['ctspv']."', "; }

        
    // Fahrzeugfarbe
        
    if($_POST['car_type_search_color'] != 0) { $querrystring .= " AND car_user_cars.mycol LIKE '%".$_POST['car_type_search_color']."%'"; }

        echo 
    "<br /><br />".$querrystring;

        if(isset(
    $querrystring) AND $querrystring != '') {
            
    $con mysql_query("SELECT
                                    cf.id,
                                    cf.uid,
                                    cf.vkp,
                                    
    $pf
                                    cf.war,
                                    cf.rec,
                                    cc.uid as cucuid,
                                    cc.mytype,
                                    cuc.myview,
                                    cuc.mysto,
                                    cuc.myborn,
                                    
    $bj
                                    cuc.mydet,
                                    cuc.mycol,
                                    cuc.mycar,
                                    cu.id as cuid,
                                    cu.vzk,
                                    cu.vor
                                FROM
                                    cf
                                    LEFT JOIN cuc ON (cuc.uid = cf.uid)
                                    LEFT JOIN cu ON (cu.id = cf.uid)
                                WHERE
                                    
    $querrystring") or die (mysql_error());
        
    //............
    ?>
    Wenn ich den Query wie oben aufgeführt ausführe, wird der Vergleich mit Variable $bj nicht berücksichtigt. Setze ich $bj in die WHERE-Bedingung, wird nichts gefunden, obwohl ein Ergebnis vorhanden sein muss.

    Wo liegt der Denkfehler?
     
    tschöh mit öh
    salia

    Wenn kein Text oben vorhanden ist, hier klicken:
    Für PHP -> FAQ
    Für PHP -> php.net
    für MySQL -> dev.mysql.com

  2. #2
    Avatar von Funky_MF
    Funky_MF Funky_MF ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Ort
    Unterfranken (Bayern)
    Beiträge
    127
    Kann das sein, daß du hier Vergleichsoperatoren und Zuweisungsoperator verwechselst?

    PHP-Code:
    $bj .= "cuc.myborn >= '".$_POST['ctsvbj']."', "; } 
    Wenn ich das richtig sehe versuchst du hier an $bj einen boolschen Wert anzuhängen (TRUE/FALSE), das macht wenig Sinn, denn du vergleichst hier nur 2 Werte aber weist nichts zu.
    Außerdem versuchst du einen String zu vergleichen mit einem anderen Wert, Vergleiche machen meiner Meinung nach aber nur mit z.B. Integer-Werten Sinn, oder seh ich da was falsch ?
    Was sollte denn $bj richtigerweise beinhalten?
     
    Es ist keine Schande, nicht alles zu wissen;
    wohl aber, es nicht zugeben zu wollen.


    Wie man Fragen richtig stellt...

    KEINE ZIELGRUPPE

  3. #3
    mewX mewX ist offline Mitglied Gold
    Registriert seit
    Jul 2006
    Ort
    Berlin
    Beiträge
    129
    Zitat Zitat von Funky_MF
    PHP-Code:
    $bj .= "cuc.myborn >= '".$_POST['ctsvbj']."', "; } 
    Wenn ich das richtig sehe versuchst du hier an $bj einen boolschen Wert anzuhängen (TRUE/FALSE), das macht wenig Sinn, denn du vergleichst hier nur 2 Werte aber weist nichts zu.
    Ich glauibe er/sie will da die "WHERE"-Klausel erstellen Zu dem Zeitpuntk soll noch nichts verglichen werden, erst während der Query...

    Stimmt den Die Ausgabe in
    PHP-Code:
    echo "<br /><br />".$querrystring
    ?
     

  4. #4
    saila saila ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Siegburg
    Beiträge
    742
    Nein, die Ausgabe stimmt nicht. Wenn ich den Vergleich in den SELECT setze, wird zwar ein Ergebnis ausgegeben, aber es stimmt nicht. Bzw. der Vergleich wird gar nicht berücksichtigt. Lege ich den Vergleich in die WHERE-Bedingung, wird gar nichts mehr gefunden, obwohl ein Ergebnis da sein muss.
     
    tschöh mit öh
    salia

    Wenn kein Text oben vorhanden ist, hier klicken:
    Für PHP -> FAQ
    Für PHP -> php.net
    für MySQL -> dev.mysql.com

  5. #5
    mewX mewX ist offline Mitglied Gold
    Registriert seit
    Jul 2006
    Ort
    Berlin
    Beiträge
    129
    nein, ich meine ob der SELECT-Querystring korrekt zusammengebaut wird? Sprich die Query mal ausgeben.
     

  6. #6
    saila saila ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Siegburg
    Beiträge
    742
    wird absolut korrekt zusammengesetzt. Habe diesen mehrfach getestet und auch ausgeben lassen.

    Eine andere Frage schließt sich aber gerade an. Angenommen in einer Spalte sind Inhalte wie folgt: 4|12|1990. Ausschlaggebend ist nun aber die 1990. Kann man die zuvor genannten Inhalte mit Platzhaltern (und zwar egal welche Anzahl an Zeichen zuvor vorhanden sind) in die Abfrage einbinden? Oder anderst gesagt, ein LIKE ist nicht möglich.

    EDIT:
    Hat sich erledigt. Zauberwort war YEAR(datum)
    Geändert von saila (11.09.06 um 20:59 Uhr)
     
    tschöh mit öh
    salia

    Wenn kein Text oben vorhanden ist, hier klicken:
    Für PHP -> FAQ
    Für PHP -> php.net
    für MySQL -> dev.mysql.com

Ähnliche Themen

  1. Double auf kleiner gleich überprüfen
    Von prinzschleifer im Forum Java
    Antworten: 7
    Letzter Beitrag: 16.08.10, 12:53
  2. größer gleich oder kleiner gleich
    Von saila im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 10.09.06, 23:35
  3. Gleich und doch nicht gleich
    Von miheberle im Forum PHP
    Antworten: 29
    Letzter Beitrag: 14.07.06, 12:41
  4. Datenbankabfrage "kleiner gleich"
    Von exxe im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 26.09.05, 00:59
  5. grösser oder gleich
    Von pizza im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 23.11.03, 17:22