How to echo out table rows from the db (php)

前端 未结 5 1164
故里飘歌
故里飘歌 2020-11-28 11:35

i want to echo out everything from a particular query. If echo $res I only get one of the strings. If I change the 2nd mysql_result argument I can get the 2nd, 2rd etc but

相关标签:
5条回答
  • 2020-11-28 11:59

    Expanding on the accepted answer:

    function mysql_query_or_die($query) {
        $result = mysql_query($query);
        if ($result)
            return $result;
        else {
            $err = mysql_error();
            die("<br>{$query}<br>*** {$err} ***<br>");
        }
    }
    
    ...
    $query = "SELECT * FROM my_table";
    $result = mysql_query_or_die($query);
    echo("<table>");
    $first_row = true;
    while ($row = mysql_fetch_assoc($result)) {
        if ($first_row) {
            $first_row = false;
            // Output header row from keys.
            echo '<tr>';
            foreach($row as $key => $field) {
                echo '<th>' . htmlspecialchars($key) . '</th>';
            }
            echo '</tr>';
        }
        echo '<tr>';
        foreach($row as $key => $field) {
            echo '<td>' . htmlspecialchars($field) . '</td>';
        }
        echo '</tr>';
    }
    echo("</table>");
    

    Benefits:

    • Using mysql_fetch_assoc (instead of mysql_fetch_array with no 2nd parameter to specify type), we avoid getting each field twice, once for a numeric index (0, 1, 2, ..), and a second time for the associative key.

    • Shows field names as a header row of table.

    • Shows how to get both column name ($key) and value ($field) for each field, as iterate over the fields of a row.

    • Wrapped in <table> so displays properly.

    • (OPTIONAL) dies with display of query string and mysql_error, if query fails.

    Example Output:

    Id      Name
    777     Aardvark
    50      Lion
    9999    Zebra
    
    0 讨论(0)
  • 2020-11-28 12:12
     $result= mysql_query("SELECT * FROM MY_TABLE");
     while($row = mysql_fetch_array($result)){
          echo $row['whatEverColumnName'];
     }
    
    0 讨论(0)
  • 2020-11-28 12:13
    $sql = "SELECT * FROM MY_TABLE";
    $result = mysqli_query($conn, $sql); // First parameter is just return of "mysqli_connect()" function
    echo "<br>";
    echo "<table border='1'>";
    while ($row = mysqli_fetch_assoc($result)) { // Important line !!! Check summary get row on array ..
        echo "<tr>";
        foreach ($row as $field => $value) { // I you want you can right this line like this: foreach($row as $value) {
            echo "<td>" . $value . "</td>"; // I just did not use "htmlspecialchars()" function. 
        }
        echo "</tr>";
    }
    echo "</table>";
    
    0 讨论(0)
  • 2020-11-28 12:15
    $sql = "SELECT * FROM YOUR_TABLE_NAME";
    $result = mysqli_query($conn, $sql); // First parameter is just return of "mysqli_connect()" function
    echo "<br>";
    echo "<table border='1'>";
    while ($row = mysqli_fetch_assoc($result)) { // Important line !!!
        echo "<tr>";
        foreach ($row as $field => $value) { // If you want you can right this line like this: foreach($row as $value) {
            echo "<td>" . $value . "</td>"; 
        }
        echo "</tr>";
    }
    echo "</table>";
    

    In PHP 7.x You should use mysqli functions and most important one in while loop condition use "mysqli_fetch_assoc()" function not "mysqli_fetch_array()" one. If you would use "mysqli_fetch_array()", you will see your results are duplicated. Just try these two and see the difference.

    0 讨论(0)
  • 2020-11-28 12:15

    Nested loop to display all rows & columns of resulting table:

    $rows = mysql_num_rows($result);
    $cols = mysql_num_fields($result);
    for( $i = 0; $i<$rows; $i++ ) {
       for( $j = 0; $j<$cols; $j++ ) {
         echo mysql_result($result, $i, $j)."<br>";
       }
    }
    

    Can be made more complex with data decryption/decoding, error checking & html formatting before display.

    Tested in MS Edge & G Chrome, PHP 5.6

    0 讨论(0)
提交回复
热议问题