Erreur mysql_fetch_array()

christo470 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   -  
christo470 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention   -
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

kevin76110 Messages postés 4273 Date d'inscription   Statut Membre Dernière intervention   875
 
'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
christo470 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention  
 
J'utilise WAMP server
0
kevin76110 Messages postés 4273 Date d'inscription   Statut Membre Dernière intervention   875
 
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
christo470 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention  
 
Oui ils sont lancés !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maka54 Messages postés 698 Date d'inscription   Statut Membre Dernière intervention   80
 
$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
christo470 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention  
 
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
maka54 Messages postés 698 Date d'inscription   Statut Membre Dernière intervention   80
 
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
christo470 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention  
 
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
maka54 Messages postés 698 Date d'inscription   Statut Membre Dernière intervention   80
 
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
christo470 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention  
 
Okei merci pour l'explication mais il n'y a pas d'erreur !
0
maka54 Messages postés 698 Date d'inscription   Statut Membre Dernière intervention   80
 
l'erreur se situe forcement à cet endroit là

$reponse renvoie une erreur, donc cela vient du mysql_query
0
christo470 Messages postés 33 Date d'inscription   Statut Membre Dernière intervention  
 
Okei ben merci kan meme e vais essayer de le faire passer par PDO !
0