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?
    "My software never has bugs, it just develops random features."
    "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

    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...
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar

        Lädt...
        X