Ankündigung

Einklappen
Keine Ankündigung bisher.

Den Rückgabewert von mysql_query() mehrmals nutzen

Einklappen

Neue Werbung 2019

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

  • Den Rückgabewert von mysql_query() mehrmals nutzen

    Hi,

    frohe Weihnachten an alle :P.

    Ich habe folgenden Code:

    PHP-Code:
    $query 'SELECT titel FROM artikel WHERE artikel_id = 1';

    $ergebnis mysqli_query($connect$query);

    while(
    $row mysqli_fetch_array($ergebnis)) {
      echo 
    $row['titel'];
    }

    echo 
    $row['titel'];
    ?
    php
    Ausgabe: Titel

    Wieso wird jetzt nur einmal der Titel ausgegeben?

  • #2
    die frage ist, warum du eine while machst, wenn du eine artikelID=1 dadrinne stehen hast. ID ist ja nur ienmal vergeben, deshalb ist das unlogisch ne while zu machen.
    PHP-Code:
    <?php $query 'SELECT titel FROM artikel WHERE artikel_id = 1';

    $ergebnis mysql_query($connect$query);

    $row mysql_fetch_array($ergebnis);
      echo 
    $row['titel'];


    echo 
    $row['titel'];
    ?
    php>
    so müsste es gehen. außerdem heißt das meineswissens mysql_query und nich mysqli. weiß ich aber nich so genau

    edit: was ich mache, wenn ich sachen öfter verwende ist den tabelleninhalt in eine var zu schreiben. z.b.

    $titel = $row['titel'];

    aber wie gesagt. in mienen augen sinnlos ne while zu nehmen

    Kommentar


    • #3
      @Erecthoma2006:
      Wenn Du mal etwas genauer über Deinen Code nachdenkst, solltest Du darauf kommen, unter welchen Bedingungen die zweite echo-Anweisung überhaupt aufgerufen wird. Nämlich wenn $row == false ist.
      Andernfalls kommst Du ja gar nicht aus der Schleife

      @rbs_phoenix:
      außerdem heißt das meineswissens mysql_query und nich mysqli
      Ja, das ist aber ne andere Funktion. Ein kurzer Blick ins Manual offenbart die mysqli_* Funktionen ab PHP 5.
      Und eine Tastatur, wo alle Tasten funktionieren, ist schon was tolles.

      Kommentar


      • #4
        ja die funktionieren alle, hab bloß ne gebrochene hand und da ist das schreiben n bisschen schwerer. :wink:


        Und da ich nicht nachgeguckt habe, ob es die funktion gibt, habe ich geschrieben, dass ich es nich so genau weiß. Aber rein theoretisch ist es sinnlos mit ner ID ne While-schleife zu benutzen finde ich

        Kommentar


        • #5
          @rbs_phoenix

          ist es sinnlos mit ner ID ne While-schleife zu benutzen finde ich
          Vielleicht hat ja artikel_id eine ganz andere Bedeutung, als man im ersten Moment glaubt ...
          Oder kennst du seine DB-Struktur ?

          Kommentar


          • #6
            nein, entschuldigung blos dann müsste bzw könnte er noch schreiben, von welcher id er den titel haben will. oder in die while:

            if($row['titel'] == "Gewünschter titel") $titel = $row['titel'];

            und unten dann die $titel ausgeben.
            andernfalls wäre es unlogisch, dass, wenn es mehrere einträge geben würde, nur einmal der Titel ausgegeben wird (soll 2 mal ausgegeben werden -> einmal aus der while-schleife und einmal das echo danach.

            aber ansonsten denke ich auch so:

            Wenn Du mal etwas genauer über Deinen Code nachdenkst, solltest Du darauf kommen, unter welchen Bedingungen die zweite echo-Anweisung überhaupt aufgerufen wird. Nämlich wenn $row == false ist.
            Andernfalls kommst Du ja gar nicht aus der Schleife

            Kommentar


            • #7
              Zitat von rbs_phoenix
              $ergebnis = mysql_query($connect, $query);

              $row = mysql_fetch_array($ergebnis);
              echo $row['titel'];
              ...[/php]
              aber auch bei so einem konstrukt ist darauf zu achten, was passiert, wenn die id nicht existiert. während dies in der while schleife selbst passiert, ist hier ein if-zweig angebracht:

              PHP-Code:
              <?php 
              $query 
              'SELECT titel FROM artikel WHERE artikel_id = 1';

              $ergebnis mysql_query($connect$query);

              if (
              false !== $row=mysql_fetch_array($ergebnis))
                {
                echo 
              $row['titel'];
                }

              if (isset (
              $row['titel'])) echo $row['titel'];
              ?
              php>
              bei diesem simplen bsp. könnte die klammer natürlich über beide ausgaben erweitert werden....

              Kommentar


              • #8
                $row ist NULL, weil das while-Schleifen-Konstrukt innerhalb der Klammer so oft ausgeführt wird, bis es (bool)FALSE ist und (bool)NULL (das liefert nämlich mysql_fetch_* wenn die Ergebnismenge zu Ende ist) ist FALSE.

                Kommentar


                • #9
                  laut handbuch liefert mysql_fetch_* FALSE nicht NULL, am ende der datensatzmenge.

                  Kommentar


                  • #10
                    Wußt ich garnicht, aber kommt ja wie beschrieben aufs gleiche raus

                    Kommentar

                    Lädt...
                    X