Bonjour,
je suis débutant en programmation et essaie de comprendre le code pour afficher page par page les données sur une page html en suivant le tuto (https://zestedesavoir.com/tutoriels/351/paginer-avec-php-et-mysql/).
Et je bloque dès le début. En fait, c’est le passage à la requête préparée qui pose problème car si je passe par une requête simple cela fonctionne (lignes 19 et 20).
J’ai donc le message d’erreur suivant : Fatal error: Call to a member function fetch() on boolean in C:\wamp64\www\tests\test_1.php on line 35 que je ne comprends pas vraiment. Dans un cas comme dans l’autre, $resultSet est le résultat d’une requête.
Quelqu’un peut-il me guider sur une piste ? d’avance merci,
ci-dessous là ou j’en suis dans mon code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | <?php try { // On se connecte à MySQL $cnx = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); } catch(Exception $e) { // En cas d'erreur, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); } $limite = 5; // Partie "Requête" //$query = 'SELECT * FROM `vaches` LIMIT 5'; //$resultSet = $cnx->query($query); $query = 'SELECT * FROM `vaches` LIMIT :limite'; /* On prépare la requête à son exécution. Les marqueurs seront identifiés */ $query = $cnx->prepare($query); /* On lie ici une valeur à la requête, soit remplacer de manière sûre un marqueur par sa valeur, nécessaire pour que la requête fonctionne. */ $query->bindValue( 'limite', // Le marqueur est nommé « limite » $limite, // Il doit prendre la valeur de la variable $limite PDO::PARAM_INT // Cette valeur est de type entier ); /* Maintenant qu'on a lié la valeur à la requête, on peut l'exécuter pour en récupérer le résultat */ $resultSet = $query->execute(); // Partie "Boucle" while ($element = $resultSet->fetch()) { // C'est là qu'on affiche les données :) // début du tableau echo '<table bgcolor="#FFFFFF">'."\n"; // première ligne on affiche les titres prénom et surnom dans 2 colonnes echo '<tr>'; echo '<td bgcolor="#669999"><b><u>Prénom</u></b></td>'; echo '<td bgcolor="#669999"><b><u>Surnom</u></b></td>'; echo '</tr>'."\n"; // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne. while($element= $resultSet -> fetch()) { echo '<tr>'; echo '<td bgcolor="#CCCCCC">'.$element['prenom'].'</td>'; echo '<td bgcolor="#CCCCCC">'.$element['surnom'].'</td>'; echo '</tr>'."\n"; } echo '</table>'."\n"; // fin du tableau. // on libère le résultat //unset($resultSet); } |
+0
-0