Erreur mysql_fetch_array()

Bonjour, j'ai une erreur avec mon script php. On me dit Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\site_topher_design_propre\livre_or.php on line 37.

Voila mon code :
<?php

mysql_connect("localhost", "root", "");
mysql_select_db("topher_design");

$nombreDeMessagesParPage = 10; // Essayez de changer ce nombre pour voir :o)
// On récupère le nombre total de messages
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livre_or');
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_messages'];
// On calcule le nombre de pages à créer
$nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);
// Puis on fait une boucle pour écrire les liens vers chacune des pages
echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
    echo '<a href="livre_or.php?page=' . $i . '">' . $i . '</a> ';
}

 


if (isset($_GET['page']))
{
        $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
        $page = 1; // On se met sur la page 1 (par défaut)
}
 
// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
 
$reponse = mysql_query('SELECT * FROM livre_or ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
 
while ($donnees = mysql_fetch_array($reponse)) 
{
        echo $donnees['message'];
}
 
mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
?>

12 réponses

  1. Okei ben merci kan meme e vais essayer de le faire passer par PDO !
    0
    1. l'erreur se situe forcement à cet endroit là

      $reponse renvoie une erreur, donc cela vient du mysql_query
      0
      1. Okei merci pour l'explication mais il n'y a pas d'erreur !
        0
        1. L'erreur est à ce niveau là

          $reponse = mysql_query('SELECT * FROM livre_or ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);


          donc avant de faire un mysql_query de la requete, tu la met dans une variable ou tu fais un echo => tu vas donc récupérer la requete générée, cad les variables seront remplacés par leurs valeurs.

          tu la copie colle dans phpmyadmin pour la tester, et tu sauras si il y a une erreur dans la requete.

          exemple :

          $premierMessageAafficher = 0;
          $nombreDeMessagesParPage = 10;
          
          echo 'SELECT * FROM livre_or ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage;die;


          va te donner :

          SELECT * FROM livre_or ORDER BY id DESC LIMIT 0,10
          0
          1. dsl mais je ne comprend pas quand tu me dis génère ta requete en PHP, et copie colle dans phpadmin ensuite. Je suis un débutant.
            0
            1. c'est logique ... phpmyadmin et PHP c'est différent

              si tu lui met des variable PHP, il va te renvoyer une erreur

              echo 'SELECT * FROM livre_or ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage;die;


              génère ta requete en PHP, et copie colle dans phpadmin ensuite
              0
              1. oui en effet on me dit cela : " You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$reponse = mysql_query('SELECT * FROM livre_or ORDER BY id DESC LIMIT ' . $premi' at line 1 ".
                0
                1. $reponse = mysql_query('SELECT * FROM livre_or ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);


                  A priori, c'est la requete qui plante... test là directement dans phpmyadmin
                  0
                  1. Oui ils sont lancés !
                    0
                    1. Regarde déjà si Apache ( je pense que oui), serveur SQL etc. sont lancés.

                      Car ce code fonctionne (apparemment) puisque j'arrive à le lancer sans ton erreur.
                      0
                      1. 'lut,

                        Moi, en l'executant, la page m'affiche

                        Page :


                        Donc, à mon avis, tu n'as pas d'erreur de code.

                        Qu'utilises-tu pour émuler un serveur Apache ? WAMP? LAMP ? MAMP ? EasyPHP ? autre ?

                        0