Variable bekommt immer den Wert "true"

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #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...

    Comment


    • #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

      Comment


      • #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...

        Comment


        • #19
          Nein eben nicht.

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

          Array
          (
          ...
          )

          Echt merkwürdig.

          Comment


          • #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...

            Comment


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

              Comment


              • #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) ;

                Comment


                • #23
                  hmm,

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

                  Comment


                  • #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.
                    Last edited by compuboy1010; 26-02-2004, 16:05.

                    Comment


                    • #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.

                      Comment


                      • #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...

                        Comment


                        • #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);

                          Comment


                          • #28
                            hast du die smarty-klasse abgeleitet?

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

                            Comment


                            • #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);        
                                  } 

                              Comment


                              • #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...

                                Comment

                                Working...
                                X