[Bug] MySQL-Klasse in anderer Klasse nutzen

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

  • #16
    Original geschrieben von Abraxax
    deswegen verschieben wir wohl andauernd immer deine threads in das richtige forum.
    Das waren bis jetzt höchstens 2, der letzte der mit Mod-Rewrite, wo ich mir hinterher selbst an den Kopp gepackt hab und einen noch als Buffer damit man nicht sagt, dass ich untertreibe ^^

    Die restlichen wurden ja mehr oder weniger mißachtet *schulter zuck*

    btw.
    PHP Developer Forum
    Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren.[...]
    Ist doch ein Skriptproblem hier, oder nicht? Immerhin funktioniert sein Skript nicht...die Kategoriegrenzen verschwimmen hier nunmal und ehrlich gesagt habe ich keinen Bock mit dem Thema den Thread zuzuspammen...


    by Wurzel

    ghostgamblers code für php < 5:

    PHP-Code:
    <?php
    class mysql
        
    {
            var 
    $query_count=0;

            function 
    query()
            {
                
    $this->query_count++;
                return 
    true;
            }
        }

        class 
    tools extends mysql
        
    {
            function 
    query2()
            {
                
    parent::query();
                return 
    true;
            }
        }

        
    $tool = new tools();
        
    $tool->query2();
        
    $tool->query2();
        
    $tool->query2();
        
    $tool->query2();
        echo 
    $tool->get_query_count;  // direkte abfrage der var
    ?>
    Das ist nicht das, was er möchte. Er möchte klassenweit alle Querys zählen und das geht "richtig" nur mit static und wenn er das nicht hat, muss er sich was flicken, aber der Code oben zählt nicht klassenweit, sondern nur objektweit!



    @Eagle
    funktioniert mein Codefitzel jetzt und gibt 4 aus?

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #17
      BRAINSTORMING PHP/SQL/HTML/JS/CSS
      Ihr habt eine Idee, aber keinen genauen Ansatz? [color=red]Diskutiert mit anderen Usern des Forums über eure Gedankengänge um evtl. hilfreiche Ideen zu bekommen![/color]
      Normale Fragen bitte weiterhin in die entsprechenden Foren!
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #18
        *Spam*

        weiß du was eindeutig zu Brainstorming zählt?
        http://www.php-resource.de/forum/sho...threadid=50796
        http://www.php-resource.de/forum/sho...threadid=51027
        http://www.php-resource.de/forum/sho...threadid=51034
        http://www.php-resource.de/forum/sho...threadid=51061
        http://www.php-resource.de/forum/sho...threadid=51166
        deshalb sind diese ja auch alle in der Kategorie, weil da ein Ansatz fehlt und man einfach mal die Meinung anderer einholen will.

        Aber:
        Eröffnungsposting

        [...]Hier gibt's irgendwie einen Bug[...]
        Ein Bug kann nur in einem Ansatz vorhanden sein, jedoch:
        BRAINSTORMING PHP/SQL/HTML/JS/CSS
        [COLOR=red]Ihr habt eine Idee, aber keinen genauen Ansatz?[/COLOR] Diskutiert mit anderen Usern des Forums über eure Gedankengänge um evtl. hilfreiche Ideen zu bekommen!
        Normale Fragen bitte weiterhin in die entsprechenden Foren!
        Wo ich dann wieder hier wäre:
        PHP Developer Forum
        [COLOR=red]Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren.[/COLOR] Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here!

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #19
          Abseits von eurer Diskussion, in welche Kategorie das nun gehört, hab ich mir mal erlaubt, die neue Variante zu posten - siehe 2 oder 3 Postings weiter oben.
          Ich hab's jetzt alles mit $this->... gemacht und es funzt auch super.

          Allerdings ist da wieder der gleiche Bug: er zählt die 4 Queries in der Tools-Klasse nicht, obwohl er GENAU DAS machen soll!

          Meine 2 Fragen sind also:

          1. Warum zählt er's nicht mit?

          2. Wie krieg ich mein Skript dazu, die 4 Queries mitzuzählen?!?


          Danke schon mal für die sicherlich hilfreichen Antworten!

          Kommentar


          • #20
            welchen sinn macht das?

            PHP-Code:
            !isset($this->sql_queries) ? $this->sql_queries '0' $this->sql_queries++; 
            gleiche frage gilt für die Zeile darunter.

            mach doch mal ne testausgabe!

            Kommentar


            • #21
              Also, den Code den du da jetzt hast, der zählt objektweit, d.h. wenn du zwei Objekte hast, dann zählst du die Queries für beide Objekte einzeln, wenn du also ein Objekt von mysql und eines von tools machst, und dann in tools was machst, hinterher jedoch die Zahl von mysql abrufst, dann sind da die Querys von tools nicht drin.
              Das was du (denke ich) willst, sind klassenweite Variablen, d.h. EINE Variable für die gesamte Klasse, wo du hinterher die Anzahl abrufen kannst...aber da du mir immernoch nicht verklickert hast, was mein Codefitzel bei dir macht, obwohl ich dich mitlerweile 2 Mal danach gefragt habe, scheint es dich irgendwie auch nicht zu interessieren...

              versuch das einfach mal aus, entweder es funktioniert, oder eben nicht...
              PHP-Code:
              class mysql
              {
                  var 
              $database 'DB_NAME';
                  var 
              $hostname 'localhost';
                  var 
              $username 'user';
                  var 
              $password 'pass';
                  var 
              $mysqldbQuery 0;
                  var 
              $fetchedQuery 0;
                  var 
              $numrowsQuery 0;
                  var static 
              $sql_gentime 0;
                  var static 
              $sql_queries 0;

                  function 
              open()
                  {
                      
              $this->open mysql_connect($this->hostname$this->username$this->password);

                      if (!
              $this->open)
                      {
                          echo 
              "MySQL-Error #: " mysql_errno() . "\n
              <br />\nMySQL-Error: " 
              mysql_error() . "\n<br />\n<br />\n";
                      }

                      
              $this->select mysql_select_db($this->database);

                      if (!
              $this->select)
                      {
                          echo 
              "MySQL-Error #: " mysql_errno() . "\n
              <br />\nMySQL-Error: " 
              mysql_error() . "\n<br />\n<br />\n";
                      }

                      return 
              $this->open;
                      return 
              $this->select;    /* hier muss ich noch was ändern,
                                              weil ich die Öffnung der Verbindung
                                              und das auswählen der DB in EINER
                                              Funktion haben will. Ich weiß
                                              aber nach wie vor nicht, wie ich
                                              das machen kann... :/ */
                  
              }

                  function 
              query($mysqldbQuery)
                  {
                      
              $sql_starttime microtime();
                      
              $this->query mysql_query($mysqldbQuery);
                      
              $sql_endtime microtime();

                      
              self::$sql_queries++;
                      
              self::$sql_gentime round(($sql_endtime $sql_starttime), 3) + self::$sql_gentime;

                      if (
              $this->query == false)
                      {
                          echo 
              "MySQL-Error #: " mysql_errno() . "\n
              <br />\nMySQL-Error: " 
              mysql_error() . "\n<br />\n
              MySQL-Query: " 
              $mysqldbQuery "\n<br />\n<br />\n";
                      }

                      return 
              $this->query;
                  }

                  function 
              fetch($fetchedQuery)
                  {
                      
              $fetchedQuery == $this->fetch mysql_fetch_array($this->query) :
              $this->fetch mysql_fetch_array($fetchedQuery);

                      return 
              $this->fetch;
                  }

                  function 
              num_rows($numrowsQuery)
                  {
                      
              $numrowsQuery == $this->num_rows mysql_num_rows($this->query) :
              $this->num_rows mysql_num_rows($numrowsQuery);

                      return 
              $this->num_rows;
                  }

                  function 
              shut()
                  {
                      
              $this->shut mysql_close($this->open);

                      if (!
              $this->shut)
                      {
                          echo 
              "MySQL-Error #: " mysql_errno() . "\n
              <br />\nMySQL-Error: " 
              mysql_error() . "\n<br />\n<br />\n";
                      }

                      return 
              $this->shut;
                  }
              }

              $mysql = new mysql;


              class 
              tools extends mysql
              {
                  function 
              bbc($code)
                  {
                      
              // BBC-Code-Funktionen...
                  
              }

                  function 
              usage()
                  {
                      
              $this->open();
                      
              $this->query("DELETE
                                    FROM server_usage
                                    WHERE time < " 
              . (time() - 86400));

                      
              $this->query("INSERT
                                    INTO server_usage (time, ip)
                                    VALUES (" 
              time() . ", '" $_SERVER['REMOTE_ADDR'] . "')");
                      
              $this->query("SELECT time
                                    FROM server_usage"
              );
                      
              $this->num_rows();
                      
              $this->shut();

                      return 
              $this->num_rows;
                  }

                  function 
              version()
                  {
                      
              $this->open();
                      
              $build $this->fetch($this->query("SELECT VERSION()"));
                      
              $this->shut();
                      
              $this->version substr($build[0], 0, -4);

                      return 
              $this->version;
                  }
              }

              $tool = new tools
              For further information: http://de2.php.net/manual/de/language.oop5.static.php

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Kommentar


              • #22
                Original geschrieben von TobiaZ
                welchen sinn macht das?

                PHP-Code:
                !isset($this->sql_queries) ? $this->sql_queries '0' $this->sql_queries++; 
                gleiche frage gilt für die Zeile darunter.

                mach doch mal ne testausgabe!
                Hab ich gemacht und ghostgambler hat Recht - er gibt mir nur die Anzahl an Queries zurück, die ich mit $mysql->query tätige.
                Die Queries, die bei $tool->usage() direkt in der Klasse getätigt werden (sind 4 Stück), zählt er nicht mit - und anscheinend tut er das, weil er "objektweit" zählt und nicht "klassenweit"...

                (Versteh' ich das jetzt richtig, dass eine Funktion ein Objekt ist und er quasi nur die Eigenschaften (= Funktionsabläufe?!?) der mysql-Klasse an die tools-Klasse vererbt und nicht auch die Objekte?!?)


                Original geschrieben von ghostgambler
                Also, den Code den du da jetzt hast, der zählt objektweit, d.h. wenn du zwei Objekte hast, dann zählst du die Queries für beide Objekte einzeln, wenn du also ein Objekt von mysql und eines von tools machst, und dann in tools was machst, hinterher jedoch die Zahl von mysql abrufst, dann sind da die Querys von tools nicht drin.
                Das was du (denke ich) willst, sind klassenweite Variablen, d.h. EINE Variable für die gesamte Klasse, wo du hinterher die Anzahl abrufen kannst...aber da du mir immernoch nicht verklickert hast, was mein Codefitzel bei dir macht, obwohl ich dich mitlerweile 2 Mal danach gefragt habe, scheint es dich irgendwie auch nicht zu interessieren...
                Sorry, sorry und nochmal sorry - ich hab's einfach verrissen!
                Also wenn ich den Code von dir exakt so verwende, wie er bei dir dastand, kommt das:

                Parse error: parse error, unexpected T_STATIC, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/www/web8/html/test.php on line 4

                Und in Zeile 4 steht das:

                PHP-Code:
                static $query_count

                Original geschrieben von ghostgambler
                versuch das einfach mal aus, entweder es funktioniert, oder eben nicht...
                PHP-Code:
                class mysql
                {
                    var 
                $database 'DB_NAME';
                    var 
                $hostname 'localhost';
                    var 
                $username 'user';
                    var 
                $password 'pass';
                    var 
                $mysqldbQuery 0;
                    var 
                $fetchedQuery 0;
                    var 
                $numrowsQuery 0;
                    var static 
                $sql_gentime 0;
                    var static 
                $sql_queries 0;

                    function 
                open()
                    {
                        
                $this->open mysql_connect($this->hostname$this->username$this->password);

                        if (!
                $this->open)
                        {
                            echo 
                "MySQL-Error #: " mysql_errno() . "\n
                <br />\nMySQL-Error: " 
                mysql_error() . "\n<br />\n<br />\n";
                        }

                        
                $this->select mysql_select_db($this->database);

                        if (!
                $this->select)
                        {
                            echo 
                "MySQL-Error #: " mysql_errno() . "\n
                <br />\nMySQL-Error: " 
                mysql_error() . "\n<br />\n<br />\n";
                        }

                        return 
                $this->open;
                        return 
                $this->select;    /* hier muss ich noch was ändern,
                                                weil ich die Öffnung der Verbindung
                                                und das auswählen der DB in EINER
                                                Funktion haben will. Ich weiß
                                                aber nach wie vor nicht, wie ich
                                                das machen kann... :/ */
                    
                }

                    function 
                query($mysqldbQuery)
                    {
                        
                $sql_starttime microtime();
                        
                $this->query mysql_query($mysqldbQuery);
                        
                $sql_endtime microtime();

                        
                self::$sql_queries++;
                        
                self::$sql_gentime round(($sql_endtime $sql_starttime), 3) + self::$sql_gentime;

                        if (
                $this->query == false)
                        {
                            echo 
                "MySQL-Error #: " mysql_errno() . "\n
                <br />\nMySQL-Error: " 
                mysql_error() . "\n<br />\n
                MySQL-Query: " 
                $mysqldbQuery "\n<br />\n<br />\n";
                        }

                        return 
                $this->query;
                    }

                    function 
                fetch($fetchedQuery)
                    {
                        
                $fetchedQuery == $this->fetch mysql_fetch_array($this->query) :
                $this->fetch mysql_fetch_array($fetchedQuery);

                        return 
                $this->fetch;
                    }

                    function 
                num_rows($numrowsQuery)
                    {
                        
                $numrowsQuery == $this->num_rows mysql_num_rows($this->query) :
                $this->num_rows mysql_num_rows($numrowsQuery);

                        return 
                $this->num_rows;
                    }

                    function 
                shut()
                    {
                        
                $this->shut mysql_close($this->open);

                        if (!
                $this->shut)
                        {
                            echo 
                "MySQL-Error #: " mysql_errno() . "\n
                <br />\nMySQL-Error: " 
                mysql_error() . "\n<br />\n<br />\n";
                        }

                        return 
                $this->shut;
                    }
                }

                $mysql = new mysql;


                class 
                tools extends mysql
                {
                    function 
                bbc($code)
                    {
                        
                // BBC-Code-Funktionen...
                    
                }

                    function 
                usage()
                    {
                        
                $this->open();
                        
                $this->query("DELETE
                                      FROM server_usage
                                      WHERE time < " 
                . (time() - 86400));

                        
                $this->query("INSERT
                                      INTO server_usage (time, ip)
                                      VALUES (" 
                time() . ", '" $_SERVER['REMOTE_ADDR'] . "')");
                        
                $this->query("SELECT time
                                      FROM server_usage"
                );
                        
                $this->num_rows();
                        
                $this->shut();

                        return 
                $this->num_rows;
                    }

                    function 
                version()
                    {
                        
                $this->open();
                        
                $build $this->fetch($this->query("SELECT VERSION()"));
                        
                $this->shut();
                        
                $this->version substr($build[0], 0, -4);

                        return 
                $this->version;
                    }
                }

                $tool = new tools
                For further information: http://de2.php.net/manual/de/language.oop5.static.php
                Wie gesagt, ich hab kein PHP5 auf dem Server und deshalb würd' ich mich mega freuen, wenn du 'ne Variante für PHP 4.3.10 hättest... *ganzliebguck*


                Außerdem sagt er zu deinem Variante für meine Klasse Folgendes:

                Parse error: parse error, unexpected T_STATIC, expecting T_VARIABLE in /home/www/web8/html/base/basefacts.php on line 30

                Und in Zeile 30 steht das:

                PHP-Code:
                var static $sql_gentime 0
                Zuletzt geändert von ; 27.02.2005, 16:57.

                Kommentar


                • #23
                  Original geschrieben von Eagle
                  Hab ich gemacht und ghostgambler hat Recht - er gibt mir nur die Anzahl an Queries zurück, die ich mit $mysql->query tätige.
                  Die Queries, die bei $tool->usage() direkt in der Klasse getätigt werden (sind 4 Stück), zählt er nicht mit - und anscheinend tut er das, weil er "objektweit" zählt und nicht "klassenweit"...

                  (Versteh' ich das jetzt richtig, dass eine Funktion ein Objekt ist und er quasi nur die Eigenschaften (= Funktionsabläufe?!?) der mysql-Klasse an die tools-Klasse vererbt und nicht auch die Objekte?!?)
                  bevor ich mich jetzt fusselig schreibe an Theorieverständnis:
                  http://www.coding.at/tutorial_6.html
                  Ist zwar eigentlich auf Version 5 zugeschnitten, aber für die Theorie sollte es auch für Version4 reichen!


                  Also wenn ich den Code von dir exakt so verwende, wie er bei dir dastand, kommt das:

                  Parse error: parse error, unexpected T_STATIC, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/www/web8/html/test.php on line 4

                  Und in Zeile 4 steht das:

                  PHP-Code:
                  static $query_count
                  [IRONIE]Das ist ja wunderbar[/IRONIE]


                  Außerdem sagt er zu deinem Variante für meine Klasse Folgendes:

                  Parse error: parse error, unexpected T_STATIC, expecting T_VARIABLE in /home/www/web8/html/base/basefacts.php on line 30

                  Und in Zeile 30 steht das:

                  PHP-Code:
                  var static $sql_gentime 0
                  Ich hasse OOP in Version4 >_>
                  versuch mal statt "var static" "static var"

                  Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                  bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                  Wie man Fragen richtig stellt

                  Kommentar


                  • #24
                    Original geschrieben von ghostgambler
                    bevor ich mich jetzt fusselig schreibe an Theorieverständnis:
                    http://www.coding.at/tutorial_6.html
                    Ist zwar eigentlich auf Version 5 zugeschnitten, aber für die Theorie sollte es auch für Version4 reichen!

                    [IRONIE]Das ist ja wunderbar[/IRONIE]

                    Ich hasse OOP in Version4 >_>
                    versuch mal statt "var static" "static var"
                    @ Tutorial: Ich les es gleich mal durch!

                    @ Ironie: Jaja, Ironie ist was Feines... - Aber was machen wir denn nun mit deinem Snippet?!?

                    @ OOP in PHP4: Du wirst lachen, aber das hab' ich direkt selbst versucht gehabt und da wird mir Folgendes zurückgegeben:

                    Parse error: parse error, unexpected T_STATIC, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/www/web8/html/base/basefacts.php on line 30

                    Zeile 30 ist dieser Code:

                    PHP-Code:
                    static var $sql_gentime 0

                    Kommentar


                    • #25
                      Original geschrieben von Eagle
                      @ Tutorial: Ich les es gleich mal durch!
                      Ich denke du wirst bemerkt haben, dass es von mir ist

                      Aber was machen wir denn nun mit deinem Snippet?!?
                      wegschmeißen?
                      Static scheint in Version 4 überhaupt nicht zu funktionieren...

                      Versuch mal das:
                      PHP-Code:
                      <?php
                      $GLOBALS
                      ['class']['sql_queries'] = 0;
                      $GLOBALS['class']['sql_gentime'] = 0;
                      class 
                      mysql
                      {
                          var 
                      $database 'DB_NAME';
                          var 
                      $hostname 'localhost';
                          var 
                      $username 'my_user';
                          var 
                      $password 'my_pass';

                          function 
                      open()
                          {
                              
                      $this->open mysql_connect($this->hostname$this->username$this->password);

                              if (!
                      $this->open)
                              {
                                  echo 
                      "MySQL-Error #: " mysql_errno() . "\n<br />\n
                      MySQL-Error: " 
                      mysql_error();
                              }

                              
                      $this->select mysql_select_db($this->database);

                              if (!
                      $this->select)
                              {
                                  echo 
                      "MySQL-Error #: " mysql_errno() . "\n<br />\n
                      MySQL-Error: " 
                      mysql_error();
                              }

                              return 
                      $this->open;
                              return 
                      $this->select;
                          }

                          function 
                      query($dbQuery)
                          {
                              
                      $sql_starttime microtime();
                              
                      $this->query mysql_query($dbQuery);
                              
                      $sql_endtime microtime();
                                      
                                      
                      $GLOBALS['class']['sql_queries']++;
                                      
                      $GLOBALS['class']['sql_gentime'] = 
                      round(($sql_endtime $sql_starttime), 3) + 
                      $GLOBALS['class']['sql_gentime'];

                              if (
                      $this->query == false)
                              {
                                  echo 
                      "MySQL-Error #: " mysql_errno() . "\n<br />\n
                      MySQL-Error: " 
                      mysql_error() . "\n<br />\nMySQL-Query: " $dbQuery;
                              }

                              return 
                      $this->query;
                          }

                          function 
                      fetch($fetchQuery)
                          {
                              
                      $fetchQuery == $this->fetch mysql_fetch_array($this->query) : 
                      $this->fetch mysql_fetch_array($fetchQuery);

                              return 
                      $this->fetch;
                          }

                          function 
                      num_rows($rowsQuery)
                          {
                              
                      $rowsQuery == $this->num_rows mysql_num_rows($this->query) : 
                      $this->num_rows mysql_num_rows($rowsQuery);

                              return 
                      $this->num_rows;
                          }

                          function 
                      shut()
                          {
                              
                      $this->shut mysql_close($this->open);

                              if (!
                      $this->shut)
                              {
                                  echo 
                      "MySQL-Error #: " mysql_errno() . "\n<br />\n
                      MySQL-Error: " 
                      mysql_error();
                              }

                              return 
                      $this->shut;
                          }
                      }

                      class 
                      tools extends mysql
                      {
                              function 
                      usage()
                          {
                              
                      $this->open();
                              
                      $this->query("DELETE
                                            FROM server_usage
                                            WHERE time < " 
                      . (time() - 86400));

                              
                      $this->query("INSERT
                                            INTO server_usage (time, ip)
                                            VALUES (" 
                      time() . ", '" $_SERVER['REMOTE_ADDR'] . "')");

                              
                      $this->query("SELECT time
                                            FROM server_usage"
                      );
                              
                      $this->num_rows();
                              
                      $this->shut();

                              return 
                      $this->num_rows;
                          }

                          function 
                      version()
                          {
                              
                      $this->open();
                              
                      $build $this->fetch($this->query("SELECT VERSION()"));
                              
                      $this->shut();
                              
                      $this->version substr($build[0], 0, -4);

                              return 
                      $this->version;
                          }
                      }

                      $tool = new tools();
                      $mysql = new mysql();

                      $tool->query('');
                      $mysql->query('');

                      echo 
                      '<br />Queries: ' $class['sql_queries'];
                      echo 
                      '<br />Zeit: ' $class['sql_gentime'];
                      ?>
                      Sollte für Queries dann 2 ausgeben und für gentime auch irgendwas, basiert dann jedoch wieder auf globalen Variablen (nur etwas abgewandelt ^^)

                      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                      Wie man Fragen richtig stellt

                      Kommentar


                      • #26
                        du kannst in php4 'static' nur bei der definition einer variable innerhalb einer funktion oder im allgemeinen codeblock verwenden, nicht jedoch bei der definition der class-eigenschaften.

                        afaik.

                        Kommentar


                        • #27
                          @ Penizillin: Na super...

                          @ Ghostgambler:

                          1. Ja, hab ich...

                          2. Wenn ich das "static" mal rauslasse, kommt das:

                          Parse error: parse error, unexpected T_INC, expecting '(' in /home/www/web8/html/base/basefacts.php on line 64

                          Code von Zeile 64:

                          PHP-Code:
                          self::$sql_queries++; 
                          (Wieso sollen da Klammern hin?!? O.o)

                          3. Die Variante mit $GLOBALS['class']['sql_queries'] bzw. $GLOBALS['class']['sql_gentime'] bewirkt nix - im Gegenteil: er zählt gar nix mehr und zeigt 2 mal absolut nix an, nicht mal "0"...
                          Zuletzt geändert von ; 27.02.2005, 21:34.

                          Kommentar


                          • #28
                            Original geschrieben von Eagle
                            3. Die Variante mit $GLOBALS['class']['sql_queries'] bzw. $GLOBALS['class']['sql_gentime'] bewirkt nix - im Gegenteil: er zählt gar nix mehr und zeigt 2 mal absolut nix an, nicht mal "0"...
                            Hast du den Code mal exakt so in eine PHP-Datei geschrieben? Ohne auch nur einen einzigen Buchstaben zu verändern?
                            Ich hatte ja unten schon eine Verwendung mit angefügt...

                            Bei mir funktioniert der Weg nämlich auch einwandfrei (bis auf die "unsaubere" Art...)

                            ansonsten kann ich dir leider nicht weiterhelfen, ich hab keine Version 4 zum Testen und ständig auf deine Testauswertung zu warten ist ziemlich nervig (und btw. auch ziemlich langsam...)

                            Sorry, dann musst du die Querys wohl für jedes Objekt einzeln zählen

                            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                            Wie man Fragen richtig stellt

                            Kommentar


                            • #29
                              Original geschrieben von ghostgambler
                              Hast du den Code mal exakt so in eine PHP-Datei geschrieben? Ohne auch nur einen einzigen Buchstaben zu verändern?
                              Ich hatte ja unten schon eine Verwendung mit angefügt...

                              Bei mir funktioniert der Weg nämlich auch einwandfrei (bis auf die "unsaubere" Art...)

                              ansonsten kann ich dir leider nicht weiterhelfen, ich hab keine Version 4 zum Testen und ständig auf deine Testauswertung zu warten ist ziemlich nervig (und btw. auch ziemlich langsam...)

                              Sorry, dann musst du die Querys wohl für jedes Objekt einzeln zählen
                              Zuerst nicht, jetzt ja. - Hatte es zuvor einfach in meine MySQL-Klasse eingefügt, da ging's wie gesagt nicht bzw. fehlerhaft.

                              Wenn ich's in 'ne seperate Datei OHNE irgendwas anderes schreibe, geht's - allerdings gibt's dann immer diese Fehler (die tauchen 2 Mal auf):

                              Warning: mysql_query(): Access denied for user: 'wwwrun@localhost' (Using password: NO) in /home/www/web8/html/test.php on line 37

                              Warning: mysql_query(): A link to the server could not be established in /home/www/web8/html/test.php on line 37
                              MySQL-Error #: 1045
                              MySQL-Error: Access denied for user: 'wwwrun@localhost' (Using password: NO)
                              MySQL-Query:


                              Das scheint aber an dem return-Problem mit der open()-Funktion zu liegen...

                              Wie dem auch sei, in der Extra-Datei zeigt er dann am Ende eine 2 und 0.0xx als Zeitwert an... - Es geht also! *freu*


                              Damit bleiben allerdings 2 Fragen übrig:

                              1. Wieso geht's in der Extra-File und in der MySQL-Klasse selbst nicht?!?

                              2. Wie kann ich unter PHP 4.3.10 das Problem mit den 2 zurückzugebenden Werten machen, wenn ich's "sauber" programmieren will?!?


                              Was deine Kritik an meiner Reply-Time betrifft:

                              Sorry, aber mein Opa hat heute (gestern) seinen 70. Geburtstag gefeiert und ich war relativ wenig am PC...
                              Ansonsten antworte ich immer recht schnell in Foren, weil mein POP3-Plugin für 'nen IM, den ich nutze, alle 5 mins nach neuen Mails auf dem Server guckt...

                              Das war also quasi heute 'ne Ausnahme, sonst bin ich immer zwischen 16 und 22 Uhr innerhalb von wenigen Minuten am Beantworten...


                              LG, MfG und danke nochmals, dass du dir soviel Zeit nimmst, einem "OOP-Advanced-Starter" mal die PHP-Prinzipien von OOP zu erklären, denn RICHTIG GUTE Tutorials dazu scheint's nicht zu geben und als Schüler sind Bücher reiner Luxus, schließlich brauch' ich im Herbst 'n rund 2000€ teures Notebook...

                              Kommentar


                              • #30
                                Original geschrieben von Eagle
                                Wenn ich's in 'ne seperate Datei OHNE irgendwas anderes schreibe, geht's - allerdings gibt's dann immer diese Fehler (die tauchen 2 Mal auf):
                                Das ist klar, immerhin sind oben die falschen Daten angegeben, aber er sollte ja auch nur zählen und nichts ausgeben

                                Das scheint aber an dem return-Problem mit der open()-Funktion zu liegen...
                                nö...s.o.

                                1. Wieso geht's in der Extra-File und in der MySQL-Klasse selbst nicht?!?
                                Weil du zu blöd bist das einzubauen

                                2. Wie kann ich unter PHP 4.3.10 das Problem mit den 2 zurückzugebenden Werten machen, wenn ich's "sauber" programmieren will?!?
                                scheinbar gar nicht...sei doch froh, dass es überhaupt funktioniert ^^
                                OOP in PHP4 ist richtig arm, kann man nicht anders sagen *drop*

                                Was deine Kritik an meiner Reply-Time betrifft:
                                Selbst wenn du mir immer sofort geantwortet hättest, hätte ich nicht so schnell die Ergebnisse abrufen können, und während ich den Code 50 mal mit jeweils leichten Veränderungen bei mir getestet hab, hast du ihn vielleicht 5 mal getestet, weil du ihn immer erst wieder kopieren musst, dann einen Post machen musst, usw.

                                POP3-Plugin für 'nen IM, den ich nutze, alle 5 mins nach neuen Mails auf dem Server guckt...
                                Den Spam hab ich ausgeschaltet, ich guck hier doch auch so ständig vorbei und mein Postfach, tschuldigung, meine Postfächer, sind sowieso überfüllt mit 3 MLs und "richtigem" Spam und auch ein paar E-Mails die mich interessieren

                                schließlich brauch' ich im Herbst 'n rund 2000€ teures Notebook...
                                Och, dass du mein Weihnachtsgeschenk schon so früh kaufst

                                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                                Wie man Fragen richtig stellt

                                Kommentar

                                Lädt...
                                X