Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit Abfrage ob bool

Einklappen

Neue Werbung 2019

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

  • Problem mit Abfrage ob bool

    Hallo, ich habe ein Problem bei einer Abfrage. Hier der Code:

    PHP-Code:
        foreach($var as $dummy){
            
    $sql "
                SELECT test1, test2, test3
                FROM x_table
                WHERE number = '
    $dummy'
            "
    ;
            
    $result Shopware()->Db()->fetchRow($sql);
            if(
    is_bool($result) === false){
                echo 
    "fall1";
            }
            else{ 

                echo 
    "fall2";
            }
        } 
    Wenn ein Eintrag in der Datenbanktabelle gefunden wird, ist die Variable ein array, wenn nicht, ein boolscher Wert.(Dies habe ich mit gettype($result) überprüft.)
    Mein Problem ist, dass immer nur fall1 ausgeführt wird, auch wenn die Variable laut gettype() vom typ boolean ist. Hat jemand eine Idee an was das liegen kann?

  • #2
    örm - ohne deine DB-Class zu kennen ... irgendwie sieht deine Abfrage so "unfertig" aus ...

    fetchRow sollte nach meinem Verständnis die Result-Daten einer Abfrage lesen - diese Abfrage vermisse ich ....

    ansonsten bau doch mal zwischen die Zeile $result=....
    und dein nachfolgendes if
    PHP-Code:
    var_dump($result); 
    das teilt dir mit, welchen Typ dein $result hat - und welcher Wert enthalten ist

    außerdem würde ich die if-Abfrage etwas umbauen
    PHP-Code:
    if (!is_bool($result)) { ... 

    Kommentar


    • #3
      Zitat von Nights Beitrag anzeigen
      Mein Problem ist, dass immer nur fall1 ausgeführt wird, auch wenn die Variable laut gettype() vom typ boolean ist. Hat jemand eine Idee an was das liegen kann?
      Das widerspricht sich. Zeig mal den exakten Code, den du für diesen Test benutzt hast.

      Kommentar


      • #4
        Danke für die Hilfe, das var_dump hat ausgegeben bool(false)(wieso kam dann bei gettype() boolean raus?
        Ich hab es jetzt einfach so gelöst:

        PHP-Code:
        if(array_key_exists('test1'$result)){ 

        Kommentar


        • #5
          Zitat von Nights Beitrag anzeigen
          ... (wieso kam dann bei gettype() boolean raus?...
          Was denn sonst?
          Zitat von PHP-Doku
          gettype — Liefert den Datentyp einer Variablen
          Datentyp - nicht Inhalt!

          LG

          Kommentar


          • #6
            bool(false) sieht aber böser aus .

            normalerweise kommt sowas von der Datenbank nur, wenn die Abfrage Syntaxfehler enthält und daher nicht bearbeitet werden konnte ... versuch mal aus deiner Datenbank-klasse die Fehlermeldung der Datenbank herauszufischen

            ansonsten müsste is_bool ( [ bool(false) ] ) trotzdem erstmal True ergeben, so dass er bei deinem If-Konstrukt in den "Else" Zweig rennt

            Kommentar


            • #7
              get_type() liefert vor allem einen String, nicht den jeweiligen Datentypen!
              Im String steht dann "boolean", es bleibt aber ein String.

              Kommentar


              • #8
                Zitat von lstegelitz Beitrag anzeigen
                get_type() liefert vor allem einen String, nicht den jeweiligen Datentypen!
                Im String steht dann "boolean", es bleibt aber ein String.
                Es war ja nicht die Rede davon, dass er das Ergebnis von get_type im IF ausgewertet hat - sondern nur eine Kontrollausgabe damit gemacht.

                Kommentar

                Lädt...
                X