Variable bekommt immer den Wert "true"

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

  • Variable bekommt immer den Wert "true"

    Guten Tag,

    Egal ob eine Artikelnummer existiert oder nicht, die Variable $itemFound wird immer auf "true" gesetzt ? Warum ?


    PHP-Code:
    function searchForItem($itemNumber)
        {
            
    $this->db->select("*",
                              
    "bestellinfo bi, produktkuerzel pk, artikeldetails ad",
                              
    "(bi.d_artikelnummer = '".$itemNumber."')
                           AND (pk.productname = bi.productname)
                              AND (bi.d_artikelnummer = ad.d_artikelnummer)"
    ,
                                
    """""""");
            
            
    $this->itemData $this->db->fetch_array();
            
    $this->itemFound count($this->itemData) > "true" "false";
            echo 
    $this->itemFound;
        } 

    Danke

  • #2
    [ ] du kennst den unterscheid zwischen dem string mit dem inhalt false und dem booleschen ausdruck false
    PHP-Code:
    "false"
    false 
    unterschied erkannt?

    außerdem is dein code komisch
    PHP-Code:
    $itemfound count($array) > 0
    macht genau das gleiche
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Ja den Unterschied kenne ich.

      Wenn ich Deine Variante verwende hat $itemFound den Wert 1, egal nach was gesucht wird.

      $this->itemData = $this->db->fetch_array();
      $this->itemFound = count($this->itemData) > 0;

      Also in einer Smarty Template steht folgendes:

      <div id="col2">
      {if $itemFound}
      {include file="search_results_found.tpl"}
      {else}
      {include file="search_results_notfound.tpl"}
      {/if}
      </div>

      Es wird also nie der else Teil ausgeführt.

      Danke

      Kommentar


      • #4
        wieviel datensätze hast du denn in dem array?

        mal ne testausgabe gemacht?
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Ja sicher hatte ich schon eine Testausgabe gemacht:

          Wenn man eine fiktive Eingabe macht dann gibt

          PHP-Code:
          echo "<pre>";
          print_r($this->itemData);
          echo 
          "</pre>"
          garnichts aus.

          Ansonsten ein volles Array.
          Aber $itemFound wird trotzdem auf 1 gesetzt.
          Oder verhält sich das count bei Arrays anders ?

          <div id="col2">
          {if $itemFound}
          {include file="search_results_found.tpl"}
          {else}
          {include file="search_results_notfound.tpl"}
          {/if}
          </div>

          Kommentar


          • #6
            Original geschrieben von compuboy1010
            Ansonsten ein volles Array.
            Aber $itemFound wird trotzdem auf 1 gesetzt.
            hä?

            gar nichts ausgeben kann nicht sein, der sollte zumindest Array() ausgeben
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              hast du zur sicherheit mal count($this->itemData) probiert? was ist mit ner ordentlichen if?

              Kommentar


              • #8
                gar nichts ausgeben kann nicht sein, der sollte zumindest Array() ausgeben
                wenn kein array definiert ist.

                mach mal error_reporting auf e_all.

                Kommentar


                • #9
                  Wie meinst Du das error reporting ?

                  Wo kann man das einstellen ?

                  Danke

                  Kommentar


                  • #10
                    zeig mal deinen code, so wie er jetzt aussieht
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar


                    • #11
                      Habe gerade was anderes ausprobiert:

                      PHP-Code:
                          function searchForItem($itemNumber)
                          {
                              
                      $this->db->select("*",
                                                
                      "bestellinfo bi, produktkuerzel pk, artikeldetails ad",
                                                
                      "(bi.d_artikelnummer = '".$itemNumber."')
                                             AND (pk.productname = bi.productname)
                                                AND (bi.d_artikelnummer = ad.d_artikelnummer)"
                      ,
                                                  
                      """""""");
                              
                              
                      $this->itemData $this->db->fetch_array();
                              
                      $this->itemFound = isset($this->itemData) ? true false;
                              
                              echo 
                      "<pre>";
                              
                      print_r($this->itemData);
                              echo 
                      "</pre>";
                              echo 
                      $this->itemFound;
                          } 

                      Führt aber zum gleichen Ergebnis.

                      Kommentar


                      • #12
                        ist ne einstellung in der ini! (für saubere programmierung, sollte man die kennen )

                        hast du mal das count ausgeben lassen?

                        BTW: Warum überhaupt count und nicht numrows?

                        Kommentar


                        • #13
                          PHP-Code:
                          echo '<hr /><pre>Anfang Debug<br />';
                          $this->itemData $this->db->fetch_array();
                          print_r($this->itemData);
                          echo 
                          'Anzahl Datensätze: '.count($this->itemData);
                          $this->itemFound count($this->itemData) > 0;
                          echo 
                          '<br />Wert von $this->itemFound: '.(int)$this->itemFound;
                          echo 
                          '<br />Ende Debug</pre></hr />'
                          was kommt da raus?
                          Zuletzt geändert von mrhappiness; 26.02.2004, 16:09.
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Kommentar


                          • #14
                            Error reporting war bereits auf e_all gesetzt.

                            Kommentar


                            • #15
                              Anfang Debug
                              Anzahl Datensätze: 1
                              Wert von 11
                              Ende Debug

                              kommt raus wenn nix eingegeben wurde.

                              Kommentar

                              Lädt...
                              X