[code]
<!DOCTYPE HTML>
<meta charset="utf-8">
<html><head><title>Oefenopgave 15-2</title></head>
Code voor het weergeven van een tabel.<BR>
<?PHP
// Your code here
echo "<hr />\n".
"Aangemaakt op: (7 november 2017 20:43:30)<BR>\n";
include ("/home/phpbook/phpbook-vars.inc");
$connection = new mysqli($hostname, $username, $password, $db);
global $connection;
if ($connection->connect_errno) {
printf("Connect failed: %s\n", $connection->connect_error);
exit();
} else {
printf("Connected to database $db on server $hostname with login $username. \n");
}
function display_db_query($query_string, $connection, $header_bool, $table_params)
{
global $connection;
//perform the database query
$result_id = mysqli_query($connection, $query_string)
or die("display_db_query:". mysqli_error());
//var_dump ($result_id);
//var_dump ($query_string);
//find out the number of columns in result
$column_count = mysqli_fetch_row($result_id)
or die ("display_db_query:". mysqli_error());
//echo $column_count;
//var_dump ($result_id);
// var_dump ($column_count);
//TABLEform includes optional HTML arguments passed
//into function
print ("<TABLE $table_params >\n");
//optional print a bold header at top of table
if ($header_bool)
{
print("<TR>");
for ($column_num = 0;
$column_num < $column_count;
$column_num++)
//var_dump ($column_num);
while ($field_name = mysqli_fetch_field($result_id)) {
print("<TH>$field_name</TH>");
}
print("</TR>\n");
}
//print the body of the table
while ($row = mysqli_fetch_row($result_id)) {
print("<TR ALIGN=LEFT VALIGN=TOP>");
for ($column_num = 0;
$column_num < $column_count;
$column_num++)
{
print ("<TD>$row[$column_count]</TD>\n");
}
print("</TR>\n");
}
print("</TABLE>\n");
}
function display_db_table($connection, $header_bool, $table_params)
{
global $connection;
$query_string = "SELECT persons.PersonID, persons.Name, Persons.SS, fears.Fear
FROM persons
LEFT OUTER JOIN person_fear ON persons.PersonID = person_fear.PersonID
LEFT OUTER JOIN fears ON person_fear.FearID = fears.FearID";
display_db_query($query_string, $connection, $header_bool, $table_params);
}
?>
<!--<BODY>-->
<TABLE><TR><TD>
<?php
display_db_table($connection, TRUE, "BORDER=2");
?>
</TD>
<!--<TD>
<?php
display_db_table($connection, TRUE, "BORDER=2");
?>
</TD>-->
</TR></TABLE></BODY></HTML>
?>
[size=xsmall]
Toevoeging op 04/01/2018 21:21:14:[/size]
de query is simpel:
SELECT persons.PersonID, persons.Name, Persons.SS, fears.Fear
FROM persons
LEFT OUTER JOIN person_fear ON persons.PersonID = person_fear.PersonID
LEFT OUTER JOIN fears ON person_fear.FearID = fears.FearID
Het is een onderdeel van een LOI opdracht:Schrijf een PHP-script dat de gegevens van alle personen op het scherm toont en van de personen die een fobie hebben, ook hun fobie. Gebruik hiervoor de tabellen in de database "Oefen". Geef ook de kolomkoppen weer.
Gebruik hiervoor als basis de code van listing 16-2, maar gebruik de mysqli-functies. Verwijder de overbodige elementen en zorg voor voldoende foutafhandeling.
Zet de functies in een apart PHP-bestand en pas de functie display_db_table aan zodat er geen $tablename wordt meegegeven, maar een gehele select string.
Let op: mysqli_field_name bestaat niet. Gebruik mysqli_fetch_field, zie
www.php.net voor het gebruik hiervan.
Ik zit daardoor aan bepaalde voorwaarden vast hoe het eea opgebouwd moet worden.