Ik ben bezig met het pagineren van paignas. Ik wil uiteindelijk meerder pdfs in een php bestand hebben zodat ik doorheen kan bladeren

Het volgende probleem treedt op:

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\USB WebServer\root\Youtube11\index.php on line 27

Code die ik tot nog toe heb:

<?php

require_once('config.php');
$query = "SELECT * FROM pagination";
$result = mysqli_query($con, $query);

?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Pagination in PHP with Next and Previous</title>
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<body>
	<table class="table table-striped">
		<tr>
			<td>User ID</td>
			<td>User Name</td>
			<td>User Email</td>
		</tr>
		<tr>
			<?php
			
			while($row = mysqli_fetch_assoc($result))
			{

			?>
			<td> <php? echo $row['ID'] ?></td>
			<td> <php? echo $row['Username'] ?> </td>
			<td> <php? echo $row['Email'] ?> </td>
		</tr>
			<?php

			}

			?>

</body>
</html>


Wie helpt mij?
Als ik naar de manual van mysqli_real_escape_string() kijk, dan zien we dit als opbouw (dit is dus geen PHP-script)

mysqli_real_escape_string(mysqli $mysql, string $string): string

Vrij vertaald dijn dit dus twee parameters:
$mysql = De verwijzing naar de connectie in MySQLi.
$string = De string die je wilt escapen.

Jij doet:
mysqli_real_escape_string( ucfirst(trim($_POST['naam'])) )

Hier mist dus je connectie als argument.

Ook bij je mysqli_query() mist de connectie als argument.

Als je de OO-techniek (Object-oriënted) gebruikt, dan ben je trouwens flexibeler. Dan hoef je niet steeds die connectie als argument te gebruiken. Mijn voorkeur gaat altijd naar de OO-variant van mysqli uit omdat dit al met een (interne) class werkt. Als je gevorderd bent kan je nog altijd meer leuke dingen doen, zoals de class uitbouwen (extenden) of functies clonen.
Arien, Dit gaat toch niet over mysqli_real_escape_string()! Ik had problemen metmysqli_fetch_assoc. Vergissing?
Weet je dit nog?


Ed Jeurissen op 14/05/2022 21:13:47

Hallo,

Dat levert de volgende foutmeldingen op:
Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in C:\USB WebServer\root\Youtube11\index3.php on line 33


Zorg dat je uiteindelijk netjes je query werkend hebt, met goede controle, en dan zal je fetch_assoc ook prima werken.

Er zitten wel een hoop fouten in die MySQLi-boilerplate . Veel argumenten missen in de functies.

Ik geloof dat de maker ook op PHPhulp zit. Ik zal dit eens terugkoppelen, en eventueel zelf aanpassen (lang leve GitHub). Het verschil tussen het oude afgeschreven mysql_***() functiebibliotheek en de vervangende mysqli_***() functiebibliotheek is overigens niet bepaald enkel een 'i'-tje toevoegen, wat de auteur van die boilerplate gedaan heeft.
<?php

require_once('config.php');
$query = "SELECT * FROM 'pagination'";
$result = mysqli_query($con, $query);
print_r($result);

?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Pagination in PHP with Next and Previous</title>
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<body>
	<table class="table table-striped">
		<tr>
			<td>User ID</td>
			<td>User Name</td>
			<td>User Email</td>
		</tr>
		<tr>
			<?php
			
			while($row = mysqli_fetch_assoc($result))
			{
			print_r($row);
			?>
			<td> <?php echo $row['ID'] ?> </td>
			<td> <?php echo $row['Username'] ?> </td>
			<td> <?php echo $row['Email'] ?> </td>
		</tr>
			<?php

			}

			?>

</body>
</html>

als ik print_r doe komt er niks uit. Is dat de fout?
Probeer eens var_dump().
Print_r wordt voornamelijk voor array's gebruikt.

Anyway, je controleert hier niet of $result mislukt is. Kijk eens wat mysqli_error($con) te melden heeft.

Voor de liefhebbers: Ik heb de genoemde GitHub boilerplate geforkt in een eigen versie:
https://github.com/arienclaij/sql-boilerplate

Komende tijd (deze week?) hoop ik deze actueel te brengen, en eventueel samen te voegen met de bestaande van WouterJ.
var_dump()->bool(false)

mysqli_error($con) levert geen foutmelding.
Hoe heb je nu je controle gebouwd van je query?

Het kan ook zijn dat de connectie niet klopt. Controleer je daar ook op met mysqli_connect_error()?

Hoe heb je nu je controle gebouwd van je query?
Volgens mij niet!:

"SELECT * FROM pagination"; Maar ik weet ook niet welke je controle je zou moeten inbouwen?
dit betekent toch geef me alles wat in pagination zit. Maar dat plaatje is er al (een screenprint)

mysqli_connect_error()? -> levert geen foutmelding.

Controleer of je query mislukt...
- Zo ja, toon mysqli_error($con)
- Zo nee, voer een fetch_assoc(..) uit.

Zie ook de structuur in de boilerplate.
Fout blijft bestaan!

https://ibb.co/BG7hDxj


Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\USB WebServer\root\Youtube11\index.php on line 35
User ID User Name User Email

Reageren