salut,
le message est clair : Fatal error: Call to a member function fetch() on boolean in C:\wamp64\www\Jeux\index.php on line 54
ligne 54 du fichier index.php tu utilises la méthode fetch sur une variable ($reqItem) qui est un booléen et pas un objet.
en clair tu fais une requête sql qui se passe mal et le chose retourne false plutôt qu'un objet.
il faut toujours tester le retour d'un query pour éviter cela.
ensuite tu peux récupérer l'erreur.
La doc de la méthode query t'indique les retours possible :
http://php.net/manual/fr/pdo.query.php (oui une exception serait mieux).
le var_dump en dernière ligne de ton script.php doit indiquer le booléen ?
il faut que tu affiche la requête ligne 31 ("SELECT * FROM items_hippique ORDER BY id ASC LIMIT $page1, $page") histoire de pouvoir la tester (dans un client mysql) et voir si elle est syntaxiquement correcte.
si le retour est false utilise la méthode
errorInfo()
ton code qui requête la base devient
<?php
// pour pouvoir l'afficher et en plus l'autoconcaténation c'est boff ;)
$sql = 'SELECT * FROM items_hippique ORDER BY id ASC LIMIT '.$page1.', '.$page;
$reqItem = $db->query($sql);
$dataItem = [];
if($reqItem !== false){
$dataItem = $reqItem->FetchAll();
$reqItem->closeCursor();
}else {
$error = $db->errorInfo()[2];
}
je met les données dans un tableau pour séparer complètement le code "DAO" du code d'affichage (on s'approche du MVC ; ) )
L'affichage devient donc :
<?php
foreach ($dataItem as $items){
?>
<tr>
<td> <?php echo $items['nom']; ?></td>
<td> <?php echo $items['type']; ?></td>
<td> <?php echo $items['prix']; ?></td>
</tr>
<?php
}[/code]
pour afficher le message d'erreur (quand t'est pas en production)
[php]<?php
// avant le tableau par exemple mais pas avant le début de la page il faut que visuellement tu ne casse pas tout ;)
if(!empty($error)) {
echo '<p class="erreur-sql">',$error,'</p>';
}
en exécutant cela tu auras ton erreur qui, je pense, ce situe autour de la clause limite.
@+