Ankündigung

Einklappen
Keine Ankündigung bisher.

Variable nach while-Schleife

Einklappen

Neue Werbung 2019

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

  • Variable nach while-Schleife

    Hallo Leute,

    ich bin blutiger Anfänger gebe aber mein bestes etwas zu lernen.
    Nun meine Frage im folgenden Code versuche ich die Varible $struk in einer zweiten while-Schleife zu benutzen, warum funktioniert dieses nicht?
    PHP-Code:
    $abfrage1 "select * from dept;";    
    $struk mysql_query ($abfrage1);


    echo 
    mysql_num_rows($struk)." Zeilen in der Tabelle<br/>";
        
    echo 
    "<hr style=\"color:yellow\">";
    echo 
    "<h3> Aufgabe 1.2.1</h3>";    
    echo 
    "<table border=1>";
    echo 
    "<tr bgcolor=red>";
    echo 
    "<td>DEPTNO</td>";
    echo 
    "<td>DNAME</td>";
    echo 
    "<td>LOC</td>";
    echo 
    "<tr/>";
        while (
    $zeile mysql_fetch_array($struk))
            {echo 
    "<tr>";
            echo 
    "<td>$zeile[0]</td>";
            echo 
    "<td>$zeile[1]</td>";
            echo 
    "<td>$zeile[2]</td>";
            echo 
    "<tr/>";
            }
    echo 
    "</table>";

    echo 
    "<hr style=\"color:blue\">";

    echo 
    "<h3> Aufgabe 1.2.2</h3>";

        while (
    $ort =mysql_fetch_array($struk))
        {
                    echo 
    $ort[2];
        }
                
        
    mysql_close(); 

  • #2
    Du hast das Ergebnis der Abfrage schon einmal abgerufen.

    Diese Resultsets arbeiten als eine Art Liste, intern wird ein Datensatzzeiger geführt, der bei jedem Aufruf von fetch() nach vorne geschoben wird. Einmal am Ende angelangt, wird jeder weitere fetch() fehlschlagen, weil es nichts mehr zu fetchen gibt.

    Guck dir mal mysql_data_seek() an, vielleicht bekommst du es damit hin, den Datensatzzeiger wieder auf Anfang zu setzen.

    Die mysql-Erweiterung ist im übrigen veraltet. Benutz mysqli oder am besten gleich PDO.
    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

    Kommentar


    • #3
      Danke für deine Antwort. Also muss ich eine zweite Variable deklarieren mit der selben Abfrage, was auch so funktioniert. Ist eben komisch aber man muss es eben wissen.

      Nochmals besten Dank

      Kommentar


      • #4
        Anstatt die Abfrage zwei Mal durchzuführen könntest du sie auch in einem Array zwischenspeichern und beim Zweiten Mal mit foreach nochmals durchlaufen.
        [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

        Kommentar


        • #5
          Danke für den Tip. Werde es bei Gelegenheit Versuchen aber mit Schleifenbin ich noch nicht ganz so fit. Versuche es bei gelegenheit.

          Kommentar

          Lädt...
          X