Probleme mit Select Statement

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

  • Probleme mit Select Statement

    Hallo Zusammen,

    ich habe mal wieder ein Problem.
    Und zwar möchte ich folgende Abfrage machen.
    Per copy paste in phpmyadmin bekomme ich ein erfolgreiches Ergebnis (per sql Abfrage),
    nur in meinem script ist das auszugebende Array leer
    -> Array()<-.

    Ich verwende auch Pear muss ich dazu sagen!

    Wo ist mein Fehler?

    PHP-Code:
    $sql "SELECT c.*, aw1.case_aw1ID, aw2.case_aw2ID, aw3.case_aw3ID, aw4.case_aw4ID, aw5.case_aw5ID, 
    aw6.case_aw6ID, aw7.case_aw7ID, aw8.case_aw8ID, aw9.case_aw9ID,
    aw10.case_aw10ID, aw1.case_aw1, aw2.case_aw2, aw3.case_aw3, aw4.case_aw4, aw5.case_aw5, 
    aw6.case_aw6, aw7.case_aw7, aw8.case_aw8, aw9.case_aw9, aw10.case_aw10 FROM `Case` AS c 
    JOIN Inbox AS i USING (inboxID) 
    JOIN Case_aw1 AS aw1 ON c.case_aw1ID = aw1.case_aw1ID 
    JOIN Case_aw2 AS aw2 ON c.case_aw2ID = aw2.case_aw2ID 
    JOIN Case_aw3 AS aw3 ON c.case_aw3ID = aw3.case_aw3ID 
    JOIN Case_aw4 AS aw4 ON c.case_aw4ID = aw4.case_aw4ID 
    JOIN Case_aw5 AS aw5 ON c.case_aw5ID = aw5.case_aw5ID 
    JOIN Case_aw6 AS aw6 ON c.case_aw6ID = aw6.case_aw6ID 
    JOIN Case_aw7 AS aw7 ON c.case_aw7ID = aw7.case_aw7ID 
    JOIN Case_aw8 AS aw8 ON c.case_aw8ID = aw8.case_aw8ID 
    JOIN Case_aw9 AS aw9 ON c.case_aw9ID = aw9.case_aw9ID 
    JOIN Case_aw10 AS aw10 ON c.case_aw10ID = aw10.case_aw10ID 
    WHERE i.inbox IN ("
    .$inboxen.") ".$kw." ";
    $res $db->getAll($sql); 
    Als Ausgabe bekomme ich mit einem print_r($res); und print_r($sql);

    SELECT c.*, aw1.case_aw1ID, aw2.case_aw2ID, aw3.case_aw3ID, aw4.case_aw4ID, aw5.case_aw5ID,
    aw6.case_aw6ID, aw7.case_aw7ID, aw8.case_aw8ID, aw9.case_aw9ID,
    aw10.case_aw10ID, aw1.case_aw1, aw2.case_aw2, aw3.case_aw3, aw4.case_aw4, aw5.case_aw5,
    aw6.case_aw6, aw7.case_aw7, aw8.case_aw8, aw9.case_aw9, aw10.case_aw10
    FROM `Case` AS c JOIN Inbox AS i USING (inboxID) JOIN Case_aw1 AS aw1
    ON c.case_aw1ID = aw1.case_aw1ID JOIN Case_aw2 AS aw2 ON
    c.case_aw2ID = aw2.case_aw2ID JOIN Case_aw3 AS aw3 ON
    c.case_aw3ID = aw3.case_aw3ID JOIN Case_aw4 AS aw4 ON
    c.case_aw4ID = aw4.case_aw4ID JOIN Case_aw5 AS aw5 ON
    c.case_aw5ID = aw5.case_aw5ID JOIN Case_aw6 AS aw6 ON
    c.case_aw6ID = aw6.case_aw6ID JOIN Case_aw7 AS aw7 ON
    c.case_aw7ID = aw7.case_aw7ID JOIN Case_aw8 AS aw8 ON
    c.case_aw8ID = aw8.case_aw8ID JOIN Case_aw9 AS aw9 ON
    c.case_aw9ID = aw9.case_aw9ID JOIN Case_aw10 AS aw10 ON
    c.case_aw10ID = aw10.case_aw10ID WHERE i.inbox IN ('FehlQualität')
    AND DATE(c.erstellt) >= DATE('2006-06-05') AND DATE(c.erstellt) <= DATE('2006-06-11')

    Array ( )

    Danke Gruss
    Zuletzt geändert von petro_0; 03.12.2006, 15:36.
    gruss pedro

  • #2
    Gibt dir

    $res->getMessage();

    etwas zurück?
    gruss Chris

    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

    Kommentar


    • #3
      $res-&gt;getMessage();

      per

      if (PEAR::isError($res)) {
      $CandLog->error("Die Daten konnten nicht geliefert werden");
      die($res->getMessage());
      echo $res->getMessage();
      }

      kommt nichts zurück.

      Gruss
      gruss pedro

      Kommentar


      • #4
        Re: $res-&gt;getMessage();

        Gehe einfach konsequent durch, Schritt für Schritt.
        Funktioniert die Verbindung? Bringt eine Abfrage 'select * from table' ein Ergebnis?
        Nein -> Configuration überprüfen.
        Ja -> weiter:

        Bringt deine Query im vereinfachten Variant ein Ergebnis? Ohne "where"?

        Ja -> Where-clause in verschiedenen Varianten austesten
        Nein -> die Query weiter vereinfachen, mit nur einem JOIN etc...

        ... und irgenwann findest du die Stelle, die den Fehler verursacht.
        www.createpage.net
        www.immobilien-ohne-makler.de

        Kommentar


        • #5
          wenn deine query in phpMyAdmin funktioniert und per script nicht, dann tippe ich aus dem bauch heraus auf

          WHERE i.inbox IN ('FehlQualität')

          und nen falschen zeichensatz für die verbindung. das ä wird falsch codiert und sieht dann zum beispiel für den mysql server so aus:

          ä (oder so ähnlich, je nachdem)

          du musst dann vor der abfrage erst mal den zeichensatz der verbindung einstellen und zwar auf den, den dein script verwendet (dann geschieht die umsetzung automatisch)...

          beispiel: du codest in utf8, aber die verbindung steht standardmässig auf iso-8859-1 (dann denkt mysql, dass die zeichen die dort ankommen auch in iso-8859-1 codiert sind, und findet natürlich keinen match)

          dann muss vor der query folgendes an die db geschickt werden:
          SET NAMES 'utf8';
          SET CHARACTER SET 'utf8';


          greetz, high
          Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
          When everything else fails, manipulate the data...
          Beschriftungen / Großformatdruck / Werbemittel

          Kommentar


          • #6
            utf8

            ja stimmt so wars auch! Danke!

            Genau der Zeichensatz war falsch...
            Wir verwenden auf der DB utf8 ;o(


            Danke!
            gruss pedro

            Kommentar

            Lädt...
            X