Ankündigung

Einklappen
Keine Ankündigung bisher.

mysql_fetch + klasse = prob

Einklappen

Neue Werbung 2019

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

  • mysql_fetch + klasse = prob

    also ich hab her jetzt mal ne vereinfachte darstellung von meinem problem:
    PHP-Code:
    <?php
    mysql_connect
    ("localhost""root""");
    mysql_select_db("cms");
    class 
    test {
          public static function 
    tester() {
              
    $res mysql_query("SELECT * FROM test");
              return 
    mysql_fetch_assoc($res);
          }
    }
    while(
    $row test::tester()) {
        echo 
    $row['id'];
    }
    ?>
    das gibt immer nur die erste id aus, und das gaaaaaaaaanz oft (11111111111111111111111111111111111...)!
    warum ist das so?

    eagleScripts.de


  • #2
    Mit jedem
    PHP-Code:
    <? $res = mysql_query("SELECT * FROM test"); ?>
    startest Du eine neue Abfrage. Folglich zeigt $res danach wieder auf den ersten Datensatz.

    Kommentar


    • #3
      Der Beitrag wurde verschoben, wegen...
      ... Postings im falschen Forum. Bitte beim nächsten Mal darauf achten..

      Bemerkung:
      Die gestellte Frage entspricht nicht dem Wissensstand eines/einer Fortgeschrittenen. Dazu: http://www.phpfriend.de/forum/viewtopic.php?t=21515

      moved to PHP - Anfänger
      mod = master of disaster

      Kommentar


      • #4
        Zitat von karl-150
        Mit jedem
        PHP-Code:
        <? $res = mysql_query("SELECT * FROM test"); ?>
        startest Du eine neue Abfrage. Folglich zeigt $res danach wieder auf den ersten Datensatz.
        un wie beheb ich des?

        eagleScripts.de

        Kommentar


        • #5
          danke!
          so wär ne möglichkeit:
          PHP-Code:
          <?php
          mysql_connect
          ("localhost""root""");
          mysql_select_db("cms");
          class 
          test {
                public static function 
          tester() {
                    
          $res mysql_query("SELECT * FROM clanwars");
                    return 
          $res;
                }
          }
          $res test::tester();
          while(
          $row mysql_fetch_assoc($res)) {
              echo 
          $row['id'];
          }
          aber ich hät den fetch noch gern in der klasse, habt ihr ne idee??

          eagleScripts.de

          Kommentar


          • #6
            ohne das ganze prozentual zu machen
            prozentual? Wie meinen? Gewürzgurke gefällig?

            Was wilslt Du denn erreichen? Es gibt doch schon so viele Datenbankabstraktionen.

            Kommentar


            • #7
              naja schwer zu sagen, ich will einklich das mir die methode tester alle datansätze zurückgibt, bin jetzt da drauf gekommen:
              PHP-Code:
              <?php
              mysql_connect
              ("localhost""root""");
              mysql_select_db("cms");
              class 
              test {
                    public static function 
              tester() {
                        
              $res mysql_query("SELECT * FROM clanwars");
                        
              $rows = array();
                        while(
              $row mysql_fetch_assoc($res))
                            
              $rows[] = $row;
                        return 
              $rows;
                    }
              }
              foreach(
              test::tester() as $row) {
                  echo 
              $row['id'];
              }
              ?>
              geht zwar aber ich find blöd das ich 2 schleifen benötige!
              gibts da echt nix bessres?

              eagleScripts.de

              Kommentar


              • #8
                Die Klasse muss sich den Query einfach nur merken.

                Kommentar


                • #9
                  k danke!
                  habs jetzt so:
                  PHP-Code:
                  <?php
                  mysql_connect
                  ("localhost""root""");
                  mysql_select_db("cms");
                  class 
                  test {
                        public static 
                  $res;
                        public static function 
                  tester() {
                            if(!
                  self::$res)
                                
                  self::$res mysql_query("SELECT * FROM clanwars");
                            return 
                  mysql_fetch_assoc(self::$res);
                        }
                  }
                  while(
                  $row test::tester()) {
                      
                  print_r($row);
                  }
                  ?>
                  ok so?
                  noch ne frage:
                  ist es sinnvoll die methode statisch zu machen?

                  eagleScripts.de

                  Kommentar


                  • #10
                    eigentlich ist es nie sinnvoll, ne methode stratisch zu machen ...
                    ich würd einfach noch ne methode machn, die nen bestimmten query an deine methode übergibt, welche den query verarbeitet!

                    Kommentar

                    Lädt...
                    X