Belangrijke functies - Array

Functie mysqli_fetch_array()

De functie mysqli_fetch_array() hebben we al eerder besproken bij het onderdeel over arrays. Als je een query uitvoert en de functie mysqli_fetch_array() gebruikt, krijg je een rij uit de database als array terug. De elementen van deze array zijn de waardes van de verschillende velden van die regel uit de database. Het format van deze functie is:

$row = mysqli_fetch_array($result);
//of
$row = mysqli_fetch_assoc($result);


Er zijn verschillende mogelijkheden om de resultaten in een array te zetten. Hierboven worden er twee genoemd. De functies zijn nagenoeg gelijk aan elkaar. Verderop wordt het verschil besproken.
De functie haalt de volgende rij uit het objectresultaat en geeft als terugkeerwaarde false als er geen nieuwe rijen meer zijn. Normaal wordt deze functie gebruikt in een while loop:

   while($row = mysqli_fetch_array($resultaat)) {
         //doe iets met die rij, bv;

         echo "{$row['titel']}<br>";
   }

Elke kolom van een rij wordt benaderd met een array notatie:
De eerste kolom is $row["filmnr"] of $row[0]
De tweede kolom is $row["titel"] of $row[1]

Bij gebruik van mysqli_fetch_array kan zowel een key als kolomnummer worden gebruikt. Bij mysqli_fetch_assoc kan alleen een key worden gebruikt.
Om nu de eerste kolom van alle rijen van de uitkomst van een query in beeld te brengen, gebruik je de volgende code:


         while($row = mysqli_fetch_assoc($result)) {
              echo $row["titel"] . "<br>\n";
         }


We zullen alle tot nu toe behandelde functies eens in een compleet voorbeeld laten zien. Daarin maken we contact met de database film en voeren we een query op deze database uit waarmee we alles uit de tabel films selecteren. De gegevens worden oplopend gesorteerd op naam van de provincie. Het resultaat, een tabel, wordt op het scherm afgebeeld.


De code hiervoor is:

<!DOCTYPE html>
<html lang="nl">
<head>
    <title>overzicht films</title>
    <meta charset="utf-8">
</head>
<body>
<h3>Een overzicht van alle films</h3>
<table border="1" cellpadding="3">
    <tr>
        <th>filmnr</th>
        <th>titel</th>
        <th>regisseurnr</th>
        <th>jaar</th>
        <th>genre</th>
        <th>tijdsduur</th>
    </tr>
    <?php
    include "connect_film.php";


    $query = "SELECT * FROM films ORDER BY titel";
    $result = mysqli_query($link, $query);
    while ($row = mysqli_fetch_assoc($result)) {
        ?>
        <tr>
            <td><?php echo $row["filmnr"]; ?></td>
            <td><?php echo $row["titel"]; ?></td>
            <td><?php echo $row["regisseurnr"]; ?></td>
            <td><?php echo $row["jaar"]; ?></td>
            <td><?php echo $row["genre"]; ?></td>
            <td><?php echo $row["tijdsduur"]; ?></td>
        </tr>
        <?php
    }
    ?>
</table>
<?php
mysqli_close($link);
?>
</body>
</html>