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?
Zorg gewoon voor goede scripts met correcte PHP-tags, en hier toont hij ook alles goed als je netjes code-tags gebruikt.

Een schoon topic begint bij jezelf ;-)
Hoi Arien,

WouterJ zijn leesvoer heb ik gedaan. Hier kreeg ik geen foutmeldingen. Zie bijgaand plaatje

https://ibb.co/F7ttMQW en

code

<?php
/*
 * MySQLi CONNECTIE BESTAND
 * In dit bestand maken we de verbinding met een MySQL
 * server doormiddel van MySQLi functies. In deze
 * functie zit meteen het selecteren van een db, dus
 * dat doen we ook meteen.
 */

/* Error-Handling
 * ==============
 * Als eerst maken we een functie voor het beheren van
 * errors. Hiermee kunnen we makkelijk het probleem vinden
 * als er iets mis is.
 * Zodra een script online is wil je niet dat de gebruiker
 * de foutmeldingen krijgt, vandaar dat we hier error_log
 * gebruiken als DEBUG_MODE false is.
 */
// DEBUG_MODE, deze wordt false als het script online geplaatst is
define('DEBUG_MODE', true);

/*
 * We slaan alle errors op in $errors. Deze lezen we in het
 * script uit in via een foreach loop
 */
$errors = Array();

if( DEBUG_MODE )
{ // DEBUG_MODE staat aan
	// Zorg dat we alle errors te zien krijgen
	ini_set('display_errors', 'On');
	error_reporting(E_ALL | E_NOTICE);
}
else
{
	// DEBUG_MODE uit dus geen errors tonen
	ini_set('display_errors', 'Off');
	error_reporting(0);
}

function SQLerror( $error, $message, $file )
{
	// $error is het resultaat van mysql_error()
	// $message is de tekst die bij de error staat, 
	//          deze tekst zullen we gebruiken als DEBUG_MODE uit staat
	// $file is het resultaat van __FILE__ in het bestand van de error
	
	global $errors; // Zorg dat de error variabele die we net hebben gemaakt in deze functie komt

	if( DEBUG_MODE )
	{ # DEBUG_MODE aan => sla de errors op zodat we ze later kunnen tonen
		$errors[] = $message.': '.$error;
	}
	else
	{ # DEBUG_MODE uit => log de errors en sla alleen de $message op
		// We slaan niet alleen de error op, maar ook het bestand en de datum
		$log = $file.' ['.date('H:i:s').'] '.$error;
		error_log($log);

		$errors[] = $message;
	}
}

/* CONNECTIE MET MySQL SERVER
 * ==========================
 */
$sqlLink = mysqli_connect('localhost', 'root', 'usbw', 'sr_system');
// Verander de host, inlog naam, wachtwoord en sql-boilerplate (db) in de juiste gegevens

if( $sqlLink === false )
{
	// Als mysqli_connect false returned is er iets mis gegaan, gebruik de net gemaakte error functie
	// Omdat het de connectie betreft gebruiken we mysqli_connect_error()
	SQLerror( mysqli_connect_error(), 'We kunnen geen verbinding aanmaken', __FILE__ );
}


Daar komen geen foutmeldingen uit. Dus de connectie is goed!

De vraag blijft waar de foutmelding nu zit?


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

Notice: Undefined variable: sqlLink in C:\USB WebServer\root\Youtube11\index3.php on line 39

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\USB WebServer\root\Youtube11\index3.php on line 39

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in C:\USB WebServer\root\Youtube11\index3.php on line 53

Notice: Undefined variable: errors in C:\USB WebServer\root\Youtube11\index3.php on line 82

Maar ik weet niet wat ik hier mee moet. DE tabel pagination heb ik wel nog met enkele quotes voorzien omdat dit in andere documentatie ook staat.



[size=xsmall]Toevoeging op 14/05/2022 21:14:38:[/size]



<?php

// Include het connectie bestand
require 'connect.php';

// Maak een array voor foutmeldingen voor de gebruiker
$userErrors = Array();

if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
	// Het formulier is verzonden

	if( !isset($_POST['naam']) )
	{
		// Naam is niet ingevuld
		$userErrors[] = 'U heeft geen naam ingevuld';
	}

	if( count($userErrors) == 0 )
	{
		// Er zit niks in $userErrors en dus is alles goed
		
		// Gebruik altijd mysqli_real_escape_string voor alle
		// variabelen die de gebruiker kan aanpassen (alles met $_)
		$sQuery = "
			SELECT
				name,
				job,
				rank
			FROM
				users
			WHERE
				name = '".mysqli_real_escape_string(ucfirst(trim($_POST['naam'])))."'
			";
		// Gebruik in je query geen backtricks (`) 
		// en alleen quotes (') als je te maken hebt met een string ($_POST['naam'] in dit geval)
		
		// Voer de query uit
		$result = mysqli_query($sqlLink, $sQuery);
		// De volgorde van de parameters (sqllink en query) zijn precies omgekeerd aan de mysql_*
		// functies. En de link parameter is verplicht

		if( $sQuery === false )
		{
			// De query is niet gelukt
			SQLerror(mysqli_error(), 'Uw opdracht kan niet worden uitgevoerd', __FILE__);
		}
		else
		{
			// De query is gelukt, maar heeft hij wel een resultaat gekregen?
			// Dat kijken we na met mysql_num_rows(), bij een SELECT query geeft deze
			// het aantal geselecteerde rijen weer
			if( mysqli_num_rows($result) > 0 )
			{
				// Er zijn meer dan 0 rijen opgehaald en dus is er iets gevonden

				// Nu moeten we de resultaten nog fetchen voordat we ze kunnen gebruiken
				// het fetchen zet ze in een array die we vervolgens met een while loop uitlezen
				while( $row = mysqli_fetch_assoc($result) )
				{
					// $row is nu elk result. Met $row['kolomNaam'] kun je nu alles op vragen
					echo $row['name'].' is een '.$row['job'].' en zijn rank is '.$row['rank'];
				}
			}
			else
			{
				// Er is niks gevonden, dit is geen systeem fout maar een zoekfout => user error
				$userError[] = 'Er kan niks gevonden worden';
			}
		}
	}
}

?>
<!DOCTYPE HTML>
<html lang=nl>
<head>
	<meta charset=UTF-8>
	<title>SQL Boilerplate - SELECT query met MySQL</title>
</head>
<body>
	<?php if( count($errors) > 0 ) : 
		  // Er zijn errors gevonden ?>
		<div class="error">
			<ul>
			<?php foreach( $errors as $err ) : ?>
				<li><?php echo $err; ?></li>
			<?php endforeach; ?>
			</ul>
		</div>
	<?php endif; ?>
	<?php if( count($userErrors) > 0 ) : 
		  // Er zijn errors gevonden ?>
		<div class="error">
			<ul>
			<?php foreach( $userErrors as $err ) : ?>
				<li><?php echo $err; ?></li>
			<?php endforeach; ?>
			</ul>
		</div>
	<?php endif; ?>
	<form action method=post>
		<label>Naam: <input type=text name=naam /></label><br>
		<input type=submit value=Toon />
	</form>
</body>

Heb je de foutmeldingen al vertaald?
33:
mysqli_real_escape_string() expects exactly 2 parameters, 1 given

Verwacht 2, 1 gegeven. Dit leidt tot problemen!

39:
mysqli_query() expects parameter 1 to be mysqli, null given

Verwacht 1, 0 gegeven

53:

expects parameter 1 to be mysqli_result, null given
Verwacht 1, 0 gegeven

82:

Undefined variable:

ongedefineerde variable




[size=xsmall]Toevoeging op 14/05/2022 21:47:04:[/size]

Ik snap het nog steeds niet. Jullie hebben heel wat ervaring en ik heel weinig. Een tip van de sluier oplossen?
Hallo,

IK snap hem nog steeds niet. Volgens mij staat alles wel correct maar doet ie het nog steeds niet!

Plaatje van de database:

https://ibb.co/0nH6kQs

Welke argumenten mis ik?

Reageren