[Bug] mysql_num_rows in MySQL-Klasse?!?

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

  • #16
    Lies bitte nochmal mein vorriges Posting genau.

    Und wenns sauber sein sollte OHNE Deine Bussineslogik zu verändern dann ist es so richtig:
    PHP-Code:
    function num_rows ()
    {
        return 
    mysql_num_rows($this->query);
    }

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

        return 
    $this->num_rows;


    Kommentar


    • #17
      Original geschrieben von Godfrey
      Lies bitte nochmal mein vorriges Posting genau.

      Und wenns sauber sein sollte OHNE Deine Bussineslogik zu verändern dann ist es so richtig:
      PHP-Code:
      function num_rows ()
      {
          return 
      mysql_num_rows($this->query);
      }

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

          return 
      $this->num_rows;


      Nur mal so "unauffällig" nachgefragt: was heißt "BuisnesslogiK"?!?


      Und was deinen Hinweis auf den gleichen Bezeichner angeht:

      Fatal error: Cannot redeclare num_rows() in /home/www/web8/html/base/basefacts.php on line 108
      Weil in PHP kann man einen Funktionsnamen nur einmal vergeben...

      Kommentar


      • #18
        Hmmm, dann geht das bei Klassen in PHP wohl nicht...

        Aber wie gesagt, hab in PHP noch nicht OO programmiert.

        Du hast noch eine Möglichkeit es sauber zu machen...
        Lass Deine Funktion unverändert und beim Aufruf der Funktion
        PHP-Code:
        $mysql->num_rows(); 
        gibts einfach 0 als Parameter mit.
        PHP-Code:
        $mysql->num_rows(0); 
        Bussineslogik ist das was Dein Code machen soll. Lernst aber dann sicher noch genauer in der Schule.

        Kommentar


        • #19
          Original geschrieben von Godfrey
          Hmmm, dann geht das bei Klassen in PHP wohl nicht...

          Aber wie gesagt, hab in PHP noch nicht OO programmiert.

          Du hast noch eine Möglichkeit es sauber zu machen...
          Lass Deine Funktion unverändert und beim Aufruf der Funktion
          PHP-Code:
          $mysql->num_rows(); 
          gibts einfach 0 als Parameter mit.
          PHP-Code:
          $mysql->num_rows(0); 
          Bussineslogik ist das was Dein Code machen soll. Lernst aber dann sicher noch genauer in der Schule.
          Hey, danke dir! - Das funktioniert perfekt!

          Naja, dann bin ich schon mal gespannt, wie man mir "Buisnesslogik" erklären wird...

          Wenn es nicht zuviel verlangt wäre, würd' ich mich freuen, wenn du mir noch bei meinem letzten Bug mit meiner MySQL-Klasse helfen könntest - den Thread findest du hier:

          http://www.php-resource.de/forum/sho...threadid=51155

          Kommentar


          • #20
            Hmmm, das sind 5 Seiten bereits mit seeehr viel Code und da ist doch ghost schon dran... dazu fehlt mir im Moment einfach die Zeit das erstmal durchzuarbeiten, vielleicht später wenn ich mehr Zeit habe.

            Was mir noch bei Deinem Problem aufgefallen ist, dass Du keine Ahnung hast wie Funktionen wirklich arbeiten.

            Will es Dir an einem Beispiel mal erklären, da ich glaube, dass Du nicht verstanden hast warum es so klappt.

            PHP-Code:
            class my_class{
            ...
               function 
            my_function($var){
                  echo 
            $var;
               }
            ...
            }

            $var 100

               my_class
            ->my_function($var); 
            Das sind nur Bruchteile des Codes und sicher auch nicht alles ganz korrekt. Aber es geht nur darum zu erklären wie Funktionen arbeiten, also Grundlage der Programmierung.

            Die Varibale $var hat den Wert 100 bekommen. Diese Variable wird an die Funktion übergeben. Du liest nach wie vor $var, weisst aber, dass die Variable den Wert 100 hat.

            Für den Interpreter ist das aber nur ein Synomym, der Interpreter liest an der Stelle:
            PHP-Code:
            my_class->my_function(100); 
            Die Variable ist nur ein Bezeichner für den Programmierer die er im Code auch verändern kann, andere Werte zuweisen oder was auch immer. Für den Interpreter/Compiler ist das immer ein Zahlenwert den die Variable zu der Zeit enthält. Deshalb kann an der Stelle auch direkt ein Zahlenwert übergeben werden.

            OK, auch der Funktionsaufruf ist für den Interpreter/Compiler nur eine Adresse, also auch ein "Zahlenwert". Aber hier geht es ja nur darum wie eine Variable für eine Funktion ausgewertet wird.

            Kommentar


            • #21
              Hmm, danke!

              Aber ich hab's schon im anderen Thread geschrieben: der Fehler, der noch übrig war, war ganz einfach die Begrenzung von PHP - in C++ kann man ja Rücksprünge machen, z. B. in Zeile 5 eine Variable "test" mit dem Wert "blub" belegen, sofort ausgeben und 1000 Zeilen später kann ich festlegen, dass er an der Stelle, wo "test" ausgegeben wird, nicht "blub", sondern "bla" schreibt.

              Beispiel: Ich schreib ein Programm für Windows, dass eine Variable "title" hat und den Fenstertitel auf "Area 51-Test" setzt, dann andere Dinge im Quellcode ausführen lassen und danach den Fenstertitel per Zugriff auf "title" in beispielsweise "Area 52-Test over" ändern und der Fenstertitel wird geändert.
              In PHP ist sowas undenkbar, weil das den Quellcode stur abarbeitet und danach nicht mehr im Quellcode "zurückgehen" kann - und C++ kann das...

              Kommentar


              • #22
                Damit hast auch schon den Unterschied zwischen Interpreter und Compiler kennen gelernt... Na gut einen der Unterschiede...

                Kommentar


                • #23
                  Original geschrieben von Godfrey
                  Damit hast auch schon den Unterschied zwischen Interpreter und Compiler kennen gelernt... Na gut einen der Unterschiede...
                  Na also, dann bin ich ja doch nicht ganz so blöd wie ich dachte...

                  Kommentar

                  Lädt...
                  X