Ankündigung

Einklappen
Keine Ankündigung bisher.

[PHP && MySQLi] Loop will nicht loopen

Einklappen

Neue Werbung 2019

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

  • [PHP && MySQLi] Loop will nicht loopen

    Moin, dieser Code tut nicht das was er soll, er gibt nur die letzte Zeile aus... merkwürdig... erkennt jemand den Fehler? Ich bin aktuell echt ratlos.
    PHP-Code:
    <?php while($row $ban_result->fetch_assoc()) {
        echo 
    "<tr>";
        echo 
    "<td>" $row['ID'] . "</td>";
        echo 
    "<td>" $row['Name'] . "</td>";
        echo 
    "<td>" $row['Grund'] . "</td>";
        echo 
    "<td>" $row['Admin'] . "</td>";
        echo 
    "<td>" $row['Datum'] . " um " $row['Uhrzeit'] . "</td>";
        if(
    $row['Zeit'] == -) {
            echo 
    "<td>" "Permanent" "</td>";
        } else {
            echo 
    "<td>" $row['Zeit'] . "</td>";
        }
        echo 
    "</tr>";
    ?>

  • #2
    Fehler erkennt man nicht, man findet sie durch debugging: http://php-de.github.io/jumpto/leitfaden/
    Mit den spärlichen Informationen die du uns gibst wird dir auch niemand sagen können was das Problem ist. Wieviele Ergebnisse erwartest du denn? Liefert deine sql Abfrage denn wirklich was du haben willst usw.

    Kommentar


    • #3
      Also, die Query:
      PHP-Code:
      'SELECT `Name`, `Grund`, `Admin`, `Zeit`, `Uhrzeit`,`ID`, `Datum` FROM server_bans' 
      gibt alles aus und wurde bererits getestet. es sind 2 Zeilen mit der ID 1 & 2. Errorreporting ist komplett an aber es wird nichts gemeldet. Ich habe bereits zich wege probiert. wenn ich es mit i++ mache stürzt in der regel der Browser ab oder lädt sich bis in den Tod.

      Kommentar


      • #4
        Links sind zum anklicken da, dann nochmal genauer, das hier ist wohl dein Fall: http://php-de.github.io/jumpto/leitfaden/#situation-3

        Wenn sich dein Browser bis in den Tod läd hast du eine Endlosschleife erzeugt und bei deinem zähler was falsch gemacht.

        Kommentar


        • #5
          Wie soll ich bitte eine Schleife debuggen... entweder sie wird ausgeführt oder nicht.
          so sah meine schleife mit Zähler aus
          PHP-Code:
          while($i $ban_num_rows)
                          echo 
          "<tr>";
                              echo 
          "<td>" $ban_result['ID'] . "</td>";
                              echo 
          "<td>" $ban_result['Name'] . "</td>";
                              echo 
          "<td>" $ban_result['Grund'] . "</td>";
                              echo 
          "<td>" $ban_result['Admin'] . "</td>";
                              echo 
          "<td>" $ban_result['Datum'] . " um " $ban_result['Uhrzeit'] . "</td>";
                              if(
          $ban_result['Zeit'] == -) {
                                  echo 
          "<td>" "Permanent" "</td>";
                              } else {
                                  echo 
          "<td>" $ban_result['Zeit'] . "</td>";
                              }
                              echo 
          "</tr>";
                              
          $i++;
                    } else {
                      break;
                    } 

          Kommentar


          • #6
            Zur verdeutlichung:

            PHP-Code:
            while($i $ban_num_rows)
                            echo 
            "<tr>"
            das ist deine schleife. Alles danach gehört nicht mehr dazu.
            [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

            Kommentar


            • #7
              Nun Funktionstüchtig, doch leider springt er nicht in die nächste MySQL row... wie mache ich das denn?
              PHP-Code:
              while($i $ban_num_rows)
                              {
                                  echo 
              "<tr>";
                                  echo 
              "<td>" $ban['ID'] . "</td>";
                                  echo 
              "<td>" $ban['Name'] . "</td>";
                                  echo 
              "<td>" $ban['Grund'] . "</td>";
                                  echo 
              "<td>" $ban['Admin'] . "</td>";
                                  echo 
              "<td>" $ban['Datum'] . " um " $ban['Uhrzeit'] . "</td>";
                                  if(
              $ban['Zeit'] == -) {
                                      echo 
              "<td>" "Permanent" "</td>";
                                  } else {
                                      echo 
              "<td>" $ban['Zeit'] . "</td>";
                                  }
                                  echo 
              "</tr>";
                                  
              $i++; 

              Kommentar


              • #8
                entweder sie wird ausgeführt oder nicht.
                dann lass dir die Bedingung ausgeben und schau nach warum sie nicht wie erwartet ausgeführt wird wenn sie eben nicht ausgeführt wird.
                Du scheinst keinerlei Grundlagenverständnis zu haben? Programme machen was du ihnen sagst und nicht was du gedacht hast aber nicht ausdrücken konntest.
                http://www.peterkropff.de/site/php/php.htm

                Kommentar


                • #9
                  Bin selber Anfänger aber so wie ich das verstanden habe musst du Zeile für Zeile auslesen und in ein Array speichern in dem Arrey kannst du dann die einzelnen Spalten der Zeile auslesen.

                  z.b. musst du natürlich für dich anpassen, passend dazu kann ich dir noch folgende Seite entfehlen: http://www.php-kurs.com/mysql---datenbank-unter-php.htm

                  PHP-Code:
                    $sql "SELECT * FROM blablub";
                    
                  $db_erg mysqli_query$db_link$sql ) or die("<tr><td>Lesen von der Datenbank fehlgeschlagen: ".mysqli_error($db_link))."</td><tr>";

                    while (
                  $row mysqli_fetch_array$db_ergMYSQL_ASSOC)) {
                      ...
                    } 

                  Kommentar


                  • #10
                    bei der Schleife mit $i ... wäre der Startwert von $i interessant, den du uns nicht zeigst ...
                    wenn der nämlich schon 1 sein sollte , kommt unten $i++ -> damit 2 und die Bedingung im While ist erreicht.. ergo Schleife rennt einmal

                    Ansonsten ist der Hinweis von theborg nicht ganz schlecht - erstmal das gesamte Ergebnis der Datenbank zu deiner Abfrage in ein Array übertragen und dann durch dieses Array laufen ...KANN helfen - aber eigentlich sollte es eine while-Schleife auch tun - lass dir halt nützliche Informationen ausgeben ..
                    "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

                    Kommentar

                    Lädt...
                    X