Variable bekommt immer den Wert "true"

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

  • #16
    hab mich bei den hochkamms vertan, probier nochmal

    aber das, was er dir ausgegeben hat, sieht doch gut aus (falls du die ausgabe des arrays einfach nicht mitgepostet haben solltest)
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #17
      Hallo,

      was sieht denn darn gut aus?
      Der gibt einen Datensatz zurück, obwohl nichts in das Suchfeld eingegeben wurde.

      So geht der ja nie in den else Zweig der Template.

      {if $itemFound} wird immer ausgeführt.

      Danke

      Kommentar


      • #18
        Original geschrieben von compuboy1010
        Anzahl Datensätze: 1
        was sieht denn darn gut aus?
        Der gibt einen Datensatz zurück, obwohl nichts in das Suchfeld eingegeben wurde.
        naja, im array steht ja ein datensatz drin

        wo der herkommt musst allerdings du wissen (oder code posten)
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #19
          Nein eben nicht.

          In dem Datensatz steht ja nix drin.
          Es erscheint auch kein leeres Array

          Array
          (
          ...
          )

          Echt merkwürdig.

          Kommentar


          • #20
            mach aus
            PHP-Code:
            echo 'Anzahl Datensätze: '.count($this->itemData); 
            mal
            PHP-Code:
            echo 'Anzahl Datensätze: '.count($this->itemData);
            echo 
            '<br />Datentyp: '.gettype($this->itemData); 
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #21
              Anzahl Datensätze: 1
              Datentyp: boolean

              Kommentar


              • #22
                Warum zeigt der nun für gettype($this->itemData) ;

                boolean an?

                Habe in der Klasse ganz oben
                PHP-Code:
                    var $itemData = array(); 
                deklariert!

                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 ;
                        
                        
                print_r($this->itemData);
                        echo 
                'Anzahl Datensätze: '.count($this->itemData) ;
                        echo 
                '<br />Datentyp: '.gettype($this->itemData) ;

                Kommentar


                • #23
                  hmm,

                  was macht
                  PHP-Code:
                  db->fetch_array(); 
                  Die Zeit hat ihre Kinder längst gefressen

                  Kommentar


                  • #24
                    Es macht das gleiche wie der gleichnahmige mySQL Befehl.
                    Funktioniert auch wunderbar.

                    Denn wenn ich eine existierende Art-Nr eingebe dann kommen die richtigen Werte.

                    Ich glaube das einfach nicht !
                    So was habe ich noch nie erlebt. Sitzte nun schon fast den ganzen Tag an diesem Problem.
                    Zuletzt geändert von compuboy1010; 26.02.2004, 17:05.

                    Kommentar


                    • #25
                      Guten Tag,

                      bitte, wer kann mich vor dem Durchdrehen bewahren.

                      Letzte Version:

                      Scriptfunktion:

                      PHP-Code:
                      function searchForItem($itemNumber)
                      {
                           
                      $this->db->raw_query("
                                                 SELECT *
                                                 FROM   bestellinfo bi, produktkuerzel pk, artikeldetails ad
                                                 WHERE  (bi.d_artikelnummer = '"
                      .$itemNumber."')
                                                       AND    (pk.productname = bi.productname)
                                                       AND    (bi.d_artikelnummer = ad.d_artikelnummer)
                                               "
                      );
                                                     
                          
                      $this->itemFound $this->db->returnNumAffectedRows() > 0;
                              
                      $this->itemData  $this->db->fetch_array();


                      Datenbank Wrapper Klasse:

                      PHP-Code:
                      function raw_query($sql_stat
                          {  
                              
                      $this->db_result mysql_query($sql_stat) or $this->error($sql_statmysql_error(), mysql_errno());  
                              
                      $this->db_affected_rows mysql_num_rows($this->db_result);  
                          } 

                      function 
                      returnNumAffectedRows()
                      {
                          return 
                      $this->db_affected_rows;


                      Smarty Template:
                      <!-- Column 2 -->
                      <div id="col2">
                      {if $itemFound}
                      {include file="search_results_found.tpl"}
                      {else}
                      {include file="search_results_notfound.tpl"}
                      {/if}
                      </div>


                      Es klappt einfach nicht.

                      Kommentar


                      • #26
                        der code sieht auf den ersten blick ok aus

                        testausgaben?

                        wie machst du die zuweisung an das template?
                        Ich denke, also bin ich. - Einige sind trotzdem...

                        Kommentar


                        • #27
                          Die Zuweisung an die Template sieht so aus:

                          PHP-Code:
                          function assignVarsSearch()
                          {
                              
                          $this->assignVars('language'$this->language);
                              
                          $this->assignVars('linkFromMenu'$this->linkFromMenu);
                              
                          $this->assignVars('itemFound'$this->itemFound);
                              
                          $this->assignVars('itemData'$this->itemData);
                              
                          $this->assignVars('aTrans'$this->aTrans);

                          Kommentar


                          • #28
                            hast du die smarty-klasse abgeleitet?

                            oder wo kommt die funktion her?
                            Ich denke, also bin ich. - Einige sind trotzdem...

                            Kommentar


                            • #29
                              Ja die habe ich in der Klasse "page" abgeleitet:

                              Die stellt in meine Projekt die Basisklasse dar:

                              PHP-Code:
                                  function Page()
                                  {
                                      
                              /*
                                      * Do not allow instantiation of base class.
                                      * Prevent non subclass from calling constructor.
                                      */
                                      
                              if (!is_subclass_of($this"Base") ) 
                                      {
                                            
                              trigger_error("Base instantiation from non subclass."E_USER_ERROR);
                                            return 
                              NULL;
                                      }
                                  }        

                                  function 
                              provideBaseFunctionality()
                                  {
                                      
                              # USER
                                      
                              $this->getTranslation();
                                      
                                      
                              # TEMPLATE (Smarty)
                                      
                              $this->smarty = new Smarty;
                                      
                              $this->smarty->template_dir '/../smarty/templates/';
                                         
                              $this->smarty->compile_dir '/../smarty/templates_c/';
                                         
                              $this->smarty->config_dir '/../smarty/configs/';
                                         
                              $this->smarty->cache_dir '/../smarty/cache/';
                                      
                                      
                              $this->initConstants();
                                      
                              $this->assignVarsHeader();
                                      
                              $this->passVarsTemplateHeader();
                                  }
                                  
                                  function 
                              initConstants()
                                  {
                                       
                              $this->filename $_SERVER['PHP_SELF'];
                                  }
                                  
                                  function 
                              assignConstants()
                                  {
                                      
                              $this->assignVars("filename"$this->fileName);
                                      
                              $this->assignVars("title"$this->title);
                                  }
                                  
                                  function 
                              assignVarsHeader()
                                  {
                                      
                              $this->headerTitle "aaa";
                                      
                              $this->headerMeta['ContentType'] = "text/html; charset=iso-8859-1";  
                                      
                              $this->headerMeta['ContentScriptType'] = "text/javascript";
                                      
                              $this->headerMeta['ContentStyleType'] = "text/css";                
                                      
                              $this->headerMeta['date'] = "--T08:49:37+00:00";
                                      
                              $this->headerMeta['description']['lang'] = "de";
                                      
                              $this->headerMeta['description']['content'] = "...";
                                      
                              $this->headerMeta['keywords']['lang'] = "de";
                                      
                              $this->headerMeta['keywords']['content'] = "...";
                                      
                              $this->headerStyleSheet "na.css";
                                      
                              $this->headerJavaScriptFile "na.js";
                                  }
                                      
                                  function 
                              passVarsTemplateHeader()
                                  {
                                      
                              $this->assignVars('headerTitle'$this->headerTitle);
                                      
                              $this->assignVars('headerMeta'$this->headerMeta);
                                      
                              $this->assignVars('headerJavaScriptFile'$this->headerJavaScriptFile);
                                      
                              $this->assignVars('headerStyleSheet'$this->headerStyleSheet);
                                  }
                                          
                                  function 
                              assignVars($varname$value)
                                  {
                                      
                              // if varname is not passed assign keys and values
                                      
                              if (($varname == "") & (isset($value)))
                                      {
                                          while (list(
                              $key$val) = each($value)) 
                                          {
                                              
                              $this->smarty->assign($key$val);
                                          }
                                      }
                                      
                                      elseif (isset(
                              $varname) & isset($value))
                                      {

                                          
                              $this->smarty->assign($varname$value);
                                      }
                                  }    
                                  
                                  function 
                              displayPage($templName)
                                  {
                                      
                              $this->smarty->display($templName);        
                                  } 

                              Kommentar


                              • #30
                                mach aus
                                PHP-Code:
                                elseif (isset($varname) & isset($value))
                                {
                                  
                                $this->smarty->assign($varname$value);

                                mal
                                PHP-Code:
                                elseif (isset($varname) & isset($value))
                                {
                                  echo 
                                '<p>Variable: '.$varname.'<br />Wert: »'.$value.'«<br />Datentyp: '.gettype($value);
                                  if (
                                is_array($value))
                                  {
                                    echo 
                                '<pre>';
                                    
                                print_r($value);
                                    echo 
                                '</pre>';
                                  }
                                  echo 
                                '</p>';
                                  
                                $this->smarty->assign($varname$value);

                                und poste den teil mit itemfound und itemdata
                                Ich denke, also bin ich. - Einige sind trotzdem...

                                Kommentar

                                Lädt...
                                X