Search code examples
phpmysqldatabaseaddressbook

Displaying MySQL in PHP


So far, I have this program that links my phpmyadmin database to my php script. Now, I need to display certain things in a table like "all records," "all contacts whose last name starts with S," "all pet owners," etc. My question is: is there a simpler way to insert code into my php script to display the information from my database. Right now I have that long echo statement to display the information. Is there a way I can just use something like a SELECT * statement to display all records and to simplify my code?

<?php
    $db_hostname='localhost';
    $db_username='root';
    $db_password='';
    $db_database='Address Book';

    $connection = new mysqli(   $db_hostname,
                                $db_username,
                                $db_password,
                                $db_database);

    if ($connection->connect_error) {
        echo "Sorry";
    } else {
        echo "Connected!<br><br>";      
        $sql = "SELECT * FROM People";
        $result = $connection->query($sql);
        if (!$result) die ($connection->error);
        $n = $result->num_rows;     

        for ($i=1; $i<=$n; $i++) {
            $row = $result->fetch_array(MYSQLI_ASSOC);

    echo "<table>
            <tr><th>ID</th><th>First Name</th><th>Last Name</th>
            <th>Street Address</th><th>City</th>
            <th>State</th><th>Zip Code</th>
            <th>Email Address</th><th>Comment</th>
            <th>Number of pets</th></tr>";

        echo "<tr><td width=20>" . $row['iD'] . "</td><td>" . $row['First Name'] . "</td><td width=40>" .
                $row['Last Name'] . "</td><td width=200>" . $row['Street Address'] . "</td><td width=30>" .
                $row['City'] . "</td><td width=40>" . $row['State'] . "</td><td width=30>" .
                $row['Zip Code'] . "</td><td width=40>" . $row['Email Address'] . "</td><td width=20>" .
                $row['Comment'] . "</td><td width=10>" . $row['Number of pets'] . "</td></tr>";
        }
        echo "</table>";
    }
?>

Solution

  • You should a table structure first then insert your PHP codes within the structure. E.g:

    <?php
     // Put your MYSQLI retrievals codes here
    ?>
    <table>
      <tr>
        <th>FIELD_1</th>
        <th>FIELD_2</th>
        <th>FIELD_3</th>
      </tr>
    
    <?php
    while ($rows = $result->fetch_array(MYSQLI_ASSOC))
    {
    ?>
      <tr>
        <td><?php echo $rows['field_1']; ?></td>
        <td><?php echo $rows['field_2']; ?></td>
        <td><?php echo $rows['field_3']; ?></td>
      </tr>
    <?php
     }
    ?>
    
    </table>