Ik heb het volgende stukje code:
//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");
}
krijg echter de melding:
Catchable fatal error: Object of class stdClass could not be converted to string in C:\wamp64\www\Oefenopgave15-2.php on line
Ik heb getracht te begrijpen wat deze melding inhoud. Helaas snap ik het blijkbaar niet goed. Hiierdoor snap ik ook niet waar ik in de code fout ga.

Wie wil mij het (in jip en janneke taal) uitleggen wat deze melding betekend en me misschien een hint geven waar in de code ik de misser heb gemaakt?
Vanwaar de downgrade naar de oude mysql-functies?
En je bent je ook bewust dat je phpbook-vars.inc ook mogelijk als tekst leesbaar is?
Ook is die() niet echt de beste manier van fouten tonen. Waarom zou je script direct moeten stoppen met een foutmelding?

Hier een oplossing om de veldnamen en hun inhoud te tonen.

Geef de naam van de database en de table op en geef aan of je de veldnamen met een for() of foreach() wilt tonen.

Haal de // weg bij de regels printField() om de metadata van de veldnamen te tonen.

Uitbreiden naar eigen inzicht.

<!DOCTYPE HTML>
<html>
<head>
<title>Display Table Fields</title>

<meta name="description" content="Display Table Fields">

<meta http-equiv="Content-type" content="text/html;charset=UTF-8">

<meta name="viewport" content="user-scalable=1, width=device-width, initial-scale=1.0, maximum-scale=2.0, minimum-scale=1.0">

<style>
table {
	min-width: 550px;
	border:0.100em solid green;
	border-collapse:collapse;
	}

th {
	text-align: left;
	background-color: lightgrey;
	color: green;
	}

th, td {
	padding:0.500em;
	}

</style>

</head>

<body>

<?php

$host     = 'localhost';
$user     = 'user';
$password = 'password';
$database = 'databasenaam';
$table    = 'tabelnaam';
$usefor   = FALSE; // TRUE is for(), FALSE is foreach()

$db = new mysqli( $host, $user, $password, $database);

$query = 'SELECT * FROM ' . $table . ' LIMIT 15';

if ( $result = $db->query( $query ) ) {

	if ( $result->num_rows > 0 ) {

		echo '<table border=1>';
		echo '<tr>';

		if ( $usefor == TRUE ) {
			$numberOfFields = $result->field_count;
			for ( $i = 0; $i < $numberOfFields; $i++ ) {
				$veld = $result->fetch_field_direct($i);
				echo '<th>' . $veld->name . '</th>';
				//printField( $veld );
			}
		} else {
			$veldnamen = $result->fetch_fields();
			foreach ( $veldnamen as $veld ) {
				echo '<th>' . $veld->name . '</th>';
				//printField( $veld );
			}
		}

		echo '</tr>';

		while ( $row = $result->fetch_object() ) {
			echo '<tr>';

			foreach ($row as $key => $value) {
				echo '<td>' . $value . '</td>';
			}

			echo '</tr>';
		}

		echo '</table>';
	}
}

function printField( $veld ) {
	//echo '<p>Print veldwaarden</p>';
	echo '<pre>';
	printf("Name:      %s\n",   $veld->name);
	printf("Table:     %s\n",   $veld->table);
	printf("Max. Len:  %d\n",   $veld->max_length);
	printf("Length:    %d\n",   $veld->length);
	printf("charsetnr: %d\n",   $veld->charsetnr);
	printf("Flags:     %d\n",   $veld->flags);
	printf("Type:      %d\n\n", $veld->type);
	echo '</pre>';
}

?>

</body>

</html>
Hai Arien,
dhr Ben van Velzen had om de code van het leerboek gevraagd. Het is de bedoeling dat, naast het leren programmeren in PHP ook de code in de nieuwste versie wordt gedaan.
De code uit het boek werkt overigens niet.

[size=xsmall]Toevoeging op 10/01/2018 16:20:50:[/size]

dank je wel Adoptive Solution

Reageren