tabel met inner join wordt niet weeggegeven
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)
1
2
3
4
5
6
7
8
9
10
11
12
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';
?>
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)
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
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 . '&sort_order=' . $sort_order . '" title="">' . $veld . '</a></th><br>';
}
else {
$tbl_str .= '<th><a href="?sort_by=' . $veld . '&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 ('&', '&', 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>';
}
?>
// 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 . '&sort_order=' . $sort_order . '" title="">' . $veld . '</a></th><br>';
}
else {
$tbl_str .= '<th><a href="?sort_by=' . $veld . '&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 ('&', '&', 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.