Het rapport afdrukken

En dan nu de PHP code. Ik hoop dat de commentaren duidelijk genoeg zijn.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?
// Ik heb een class util waar alle database acties afgehandeld worden.
// De naamgeving spreekt verder voor zich.

$result = $util->query("SELECT * FROM test ORDER BY test_merk, test_type");
// Definiƫren van de gegevens array.
$data = array();
// Bij het vullen de array wordt al rekening gehouden met de structuur van het rapport.
// In dit geval is er maar een subtotaal, maar als je nog een onderverdeling hebt, dan voeg je er een laag aan toe.
// Dus bijvoorbeeld:  $data[$rij["test_merk"]][$rij["test_type"]][$rij["test_id"]] = $rij;

while ($rij = $result->fetch_assoc()) {
    $data[$rij["test_merk"]][$rij["test_id"]] = $rij;
}


// Reset het totaal en druk de kop af.
$totaal = 0;
echo "<table border=\"1\">";
echo "<tr><th>Merk/Type</th><th>Aantal</th></tr>";
// Begin met de merken. In $val staat dus nu dit gedeelte: [$rij["test_id"]] = $rij;  
foreach ($data as $merk => $val) {
    // Het subtotaal moet bij elk merk worden gereset.
    $subtotaal = 0;
    // Hoewel het merk in dit geval in $merk staat, zul je in de praktijk vaak de
    // gegevens uit de rij willen halen.
    // Je weet de index van $val niet, dus met current() haal je de eerste rij op uit val.

    $rij = current($val);
    // Druk de kop met het merk af.
    echo "<tr><th colspan=\"2\">{$rij["test_merk"]}</th></tr>";
    // Nu worden de details doorgelopen.
    foreach ($val as $test_id => $rij) {
        // Druk de detail regel af en tel het aantal bij het subtotaal.
        echo "<tr><td>{$rij["test_type"]}</td><td>{$rij["test_aantal"]}</td></tr>";
        $subtotaal += $rij["test_aantal"];
    }

    // Werk het totaal bij en druk het subtotaal af.
    $totaal += $subtotaal;
    echo "<tr><th>Subtotaal</th><th>$subtotaal</th></tr>";
}

// Tot slot wordt het totaal afgedrukt en de table afgesloten.
echo "<tr><th>Totaal</th><th>$totaal</th></tr>";
echo "</table>";

?>


Resultaat:
Afbeelding

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Inleiding
  2. Gegevens
  3. Het rapport afdrukken

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.