Ankündigung

Einklappen
Keine Ankündigung bisher.

query r�cksetzen?

Einklappen

Neue Werbung 2019

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

  • query r�cksetzen?

    ich steh grad voll auf der leitung und weiss auch nicht wie ich nach dem befehl suchen soll.

    habe eine db query
    $query = mysql_query("SELECT.......");

    while($data = mysql_fetch_array($query) {...

    sp�ter brauch ich so eine abfrage derselben query nochmal, m�chte mir aber die neuerliche query sparen. hatte da mal einen befehl mit dem ich die $query r�cksetzen konnte. denn wenn ich so einfach eine abfrage mache kommt gar nix.
    mit reset() mal nicht denn es ist ja noch kein array. wie dann? oder muss ich eine neue abfrage machen?
    mfg Alex

  • #2
    Meinst du: http://de2.php.net/manual/de/functio...-data-seek.php

    Gru
    phpfan

    Kommentar


    • #3
      Sehe im Manual jetzt nichts dazu, speicher das Ergebnis doch in einem Array?

      Kommentar


      • #4
        also ich seh im manual jetzt auch nichts dazu.

        @zergling: war ein guter tipp. hab das jetzt so gelöst:

        $query = mysql_query( bla bla )

        $data = mysql_fetch_array($data) // in array speichern

        while($data) { // 1. schleife
        bla bla
        }

        reset($data) // $data rücksetzen

        while($data) { // 2. schleife

        so sollte es funktionieren denke ich.
        mfg Alex

        Kommentar


        • #5
          Schau mal bei Prepared Statements nach.
          Hab ich für genau den Zweck schon mal verwendet.

          Nachteil: erst am mySQL 5.0
          Ansonsten enpfehle ich Postgres, die kann das schon seit ewigkeiten
          (Insider: is nur nirgens dokumentiert *g*)

          Gruß
          Der Desian
          Wenn dich was ankotzt, machs besser.

          Kommentar


          • #6
            Zitat von Zergling
            speicher das Ergebnis doch in einem Array?
            Dabei muss man allerdings aufpassen, da das Abfrageergebnis bei großen Ergebnismengen schnell mal den Wert von allowed_memory_size überschreitet.

            Kommentar


            • #7
              also mein oben genannter lösungsvorschlag haut nicht hin. warum bleibt die $query nicht bestehen? die ändert doch nichts in dem script oder?

              PHP-Code:
              <?php
              $query 
              mysql_query("SELECT spalte FROM tabelle");
              while(
              $data mysql_fetch_array($query)) {
                echo 
              $data['spalte'].'
              '
              ;
              }

              // spätermal:

              while($data mysql_fetch_array($query)) {
                echo 
              $data['spalte'].'
              '
              ;                            // nix wird ausgegeben
              }
              ?>
              aber wenn ich mir $query ausgeben lasse hat das immer den wert #idirgendwas

              steh jetzt echt auf der leitung. muss ich die query immer wieder neu machen?
              mfg Alex

              Kommentar


              • #8
                PHP-Code:
                <?php
                $res 
                mysql_query(..);
                $dataList = array();
                while (
                $data mysql_fetch_assoc($res)) {
                  
                $dataList[] = $data;
                  
                print_r($data);
                }
                $dataList_count count($dataList);
                for (
                $i 0$i $dataList_count$i++) {
                  
                print_r($dataList[$i]);
                }
                ?>

                Kommentar


                • #9
                  Ich verstehe immer noch nicht, was gegen Meinst du: http://de2.php.net/manual/de/functio...-data-seek.php spricht.

                  Gruß
                  phpfan

                  Kommentar


                  • #10
                    @phpfan: stimmt. du meinst so oder?
                    PHP-Code:
                    <?php
                    $query
                    =mysql_query(....);

                    // 1. schleife
                    while($data=mysql_fetch_array($query)) {
                      echo 
                    $data[].'
                    '
                    ;
                    }

                    mysql_data_seek($query'0');    // setzen des zeigers zurück zum 1. datensatz

                    // 2. schleife
                    while($data=mysql_fetch_array($query)) {
                      echo 
                    $data[].'
                    '
                    ;
                    }
                    ?>
                    hab ich das richtig verstanden?
                    mfg Alex

                    Kommentar


                    • #11
                      Nicht ganz, was soll denn echo $data[] sein?

                      Kommentar


                      • #12
                        war doch nur eine abgekürzte schreibweise. es funktioniert auf jeden fall.

                        hier nochmal die ausführliche schreibweise:
                        PHP-Code:
                        <?php
                        $query
                        =mysql_query("SELECT spalte1, spalte2 FROM tabelle");

                        // 1. schleife
                        while($data=mysql_fetch_array($query)) {
                          echo 
                        $data['spalte1'].'
                        '
                        ;
                        }

                        mysql_data_seek($query'0');    // setzen des zeigers zurück zum 1. datensatz

                        // 2. schleife
                        while($data=mysql_fetch_array($query)) {
                          echo 
                        $data['spalte2'].'
                        '
                        ;
                        }
                        ?>
                        mfg Alex

                        Kommentar


                        • #13
                          Zitat von Promaetheus
                          war doch nur eine abgekürzte schreibweise.
                          Kann ja keiner ahnen.

                          Kommentar


                          • #14
                            Der zweite Parameter ist eine Zahl. Die Umwandlung string->int kann man php ersparen.
                            mysql_data_seek($query, 0);

                            Kommentar


                            • #15
                              Funktioniert's denn? Beantworte dir die Frage doch selbst.

                              mysql_data_seek erwartet als zweiten Parameter einen "int", also mach die Quotes weg.

                              Kommentar

                              Lädt...
                              X