tabel met inner join wordt niet weeggegeven

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

De boer

de boer

04/01/2010 23:14:00
Quote Anchor link
Hoi allen,

Ben nog maar kort bezig met php, een beginner dus.
Ik wil velden uit twee tabellen via een inner join weeggeven.
1) jammer dat php zo weinig fouten en foutlocaties weeggeeft. Er zijn wel ontwikkel pakeeten die dat wel doen maar die zijn duur. Ik krijg dus geen reslutaat en geen foutmelding.
2) waa5rschijnlijk maak ik een stomme beginners fout, maar hulp is zeer welkom
Hier de code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
    ini_set ('display_errors', 1);
    error_reporting (E_ALL | E_STRICT);

    require './class.core.php';
    require './class.database.php';
    
    $db = new database ();
    // vul hier je eigen tabelnaam in
    $tabelnaam1 = 'frames';
    $tabelnaam2 = 'namen';
?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Generic Table Generator</title>
<style type="text/css">
@import 'oop.css';
</style>
</head>

<body>
<div id="container">
<div class="wrapper">
<select name='keuze'>
</select>
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
        // vul hier de velden in die je wilt hebben
        $velden = array ('$tabelnaam1.date','$tabelnaam1.time','$tabelnaam1.speel_duur','$tabelnaam2.naam','$tabelnaam1.punten',
         '$tabelnaam1.max_br','$tabelnaam1.aantal_br','$tabelnaam1.tot_br','$tabelnaam1.tot_foul');
        // deze is voor in de querystring
        $sql_str = implode (', ', $velden);
        // kijken of $_GET['sort_by'] geset is. Zoniet: eerste arrayelement van $velden pakken
        $sort_by = (isset ($_GET['sort_by'])) ? ($_GET['sort_by']) : ($velden[0]);
        // beveiligingscheck: hij moet wel in de array $velden voorkomen
        if (!in_array ($sort_by, $velden)) {
            $sort_by = $velden[0];
        }

        // kijken of $_GET['sort_order'] geset is. Zoniet: 'ASC' pakken
        $sort_order = (isset ($_GET['sort_order'])) ? ($_GET['sort_order']) : ('ASC');
        // beveiligingscheck: het mag alleen ASC of DESC zijn
        if ($sort_order != 'ASC' && $sort_order != 'DESC') {
            $sort_order = 'ASC';
        }

        // querystring in elkaar sleutelen
        $sql = "
            SELECT "
. $sql_str . "
            FROM "
. $tabelnaam1 INNER JOIN $tabelnaam2 ON $tabelnaam1.id_persoon = $tabelnaam2.id_persoon . "  
            ORDER BY "
. $sort_by . " " . $sort_order . "
            "
;
        if ($db->query ($sql)) {
            echo '<h1>' . $tabelnaam . '</h1>';
            echo PHP_EOL;
            echo '<table border=2>';
            echo PHP_EOL;
            $tbl_str = '<tr>';
            // kolomkoppen in elkaar sleutelen
            foreach ($velden as $veld) {
                if ($veld == $sort_by) {
                    // na het uitvoeren van de query draaien we $sort_order om
                    // als er op dezelfde kolomkop geklikt wordt tenminste

                    $sort_order = ($sort_order == 'ASC') ? ('DESC') : ('ASC');
                    $tbl_str .= '<th><a href="?sort_by=' . $veld . '&amp;sort_order=' . $sort_order . '" title="">' . $veld . '</a></th><br>';
                }

                else {
                    $tbl_str .= '<th><a href="?sort_by=' . $veld . '&amp;sort_order=ASC" title="">' . $veld . '</a></th>';
                }
            }

            $tbl_str .= '</tr>';
            echo $tbl_str;
            // voor de achtergrondkleur van de rijen
            $color = 5;
            while ($row = $db->fetch ()) {
                echo PHP_EOL;
                // rijen om en om kleuren; de SNELSTE manier!!! :-))))
                echo '<tr class="bg' . ($color++) % 20 . '"><td>';
                echo str_replace ('&', '&amp;', implode ('</td><td>', $row));
                echo '</td></tr>';
            }

            echo '</table>';
        }

        // als er errors zijn, laten zien
        if ($db->has_errs ()) {
            // in een div zetten, zodat je je eigen CSS kan maken
            echo '<div class="errs">';
            foreach ($db->get_errs () as $err) {
                echo $err;
            }

            echo '</div>';
        }

    ?>

</div>
</div>
</body>
</html>
 
Er zijn nog geen reacties op dit bericht.



Overzicht Reageren

 
 

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.