Ankündigung

Einklappen
Keine Ankündigung bisher.

Erster Wert der DB Table fehlt

Einklappen

Neue Werbung 2019

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

  • Erster Wert der DB Table fehlt

    Hallo ! folgender code zeigt mir alle Daten einer Table in der SQL DB an. Alle bis auf den ersten Keine Ahnung an was es liegt, schon mehrere Sachen probiert

    PHP-Code:
    <?php
        $conn 
    mysql_connect("localhost","root");
        if(
    $conn) {
            echo 
    "<b>Verbindung hergestellt</b>";
        } else {
            echo 
    "<b>Verbindung fehlgeschlagen</b>";
        }
        
        
    $select mysql_select_db("auto",$conn);
        
        
    $sql "SELECT Marke FROM Hersteller";
        
        
    $result mysql_query($sql,$conn);
        
        if(
    $result) {
            
    $number mysql_num_rows($result);
            echo 
    "<p> Es sind {$number} Datensätze gelesen worden.";
            echo 
    "<table border=1>";
            echo 
    "<tr>";
            
    $row mysql_fetch_array($resultMYSQL_ASSOC);
            while(
    $field key($row)) {
                echo 
    "<th>{$field}";
                
    next($row);
            }
            while(
    $row mysql_fetch_array($resultMYSQL_ASSOC)) {
                echo 
    "<tr><td>";
                echo 
    implode("<td>",$row);
                echo 
    "</tr>";
            }
            echo 
    "</table>";
            echo 
    "<p>Abfrage: <i>{$sql}</i>";
        } else {
            echo 
    "<p>".mysql_error($conn);
        }
        
    mysql_close($conn);
    ?>

  • #2
    Das ist alles anrede als valide.
    Bspw.: <th> geht auf aber nirgends zu, beim ersten <tr> außerhalb der schleifen ebenfalls.
    du kannst das ganze auch in eine Schleife zusammenfassen:
    PHP-Code:
    <?php
    while ($row mysql_fetch_array($resultMYSQL_ASSOC) {
        
    //...
    }
    hast du mal das error_reporting angemacht? Was gibt das SQL für Datensätze zurück, hast du es mal in der Konsole oder phpMyAdmin ausgeführt?

    Kommentar


    • #3
      Zitat von archetype Beitrag anzeigen

      Code:
      		echo "<table border=1>";
      		echo "<tr>";
      		$row = mysql_fetch_array($result, MYSQL_ASSOC);
      		while($field = key($row)) {
      			echo "<th>{$field}";
      			next($row);
      		}
      Hier liest Du ja schon die erste Datenzeile ein um den Tableheader-Zeile aufzubauen.

      Eigentlich muss Du nur die While-Schleife 2-mal laufen lassen.

      Code:
      		echo "<table border=1>";
      		echo "<tr>";
      		$row = mysql_fetch_array($result, MYSQL_ASSOC);
      		while($field = key($row)) {
      			echo "<th>{$field}";
      			next($row);
      		}
      		echo "</tr><tr>";
                                 reset($row);
      		while($field = key($row)) {
      			echo "<td>{$field}";
      			next($row);
      		}
      		echo "</tr>";
      Die Gesamt-Ausgabe der Tabelle ist allerdings absolut kein valides HTML.

      Grüße
      Thomas

      Kommentar


      • #4
        PHP-Code:
        mysql_fetch_array($resultMYSQL_ASSOC); 
        Nimm doch gleich
        PHP-Code:
        mysql_fetch_assoc($result); 
        Zum Thema:
        Vor der ersten while-Schleife holst Du Dir per mysql_fetch_array() bereits den ersten DS.
        In der zweiten while-Schleife ist der Zeiger dann imho bereits beim nächsten DS, so daß der erste nicht angezeigt wird.
        Probier entweder alles in einer while() zu erledigen oder vor der zweiten while-Schleife ein
        PHP-Code:
        mysql_data_seek($result0); 
        Zum Thema Tabelle/HTML hat Paul.Schramenko bereits das nötigste gesagt...

        Kommentar

        Lädt...
        X