Erreur mysql_fetch_array()

Fermé
christo470 Messages postés 33 Date d'inscription dimanche 11 mars 2012 Statut Membre Dernière intervention 17 août 2013 - 11 mars 2012 à 14:16
christo470 Messages postés 33 Date d'inscription dimanche 11 mars 2012 Statut Membre Dernière intervention 17 août 2013 - 11 mars 2012 à 15:21
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 vendredi 14 août 2009 Statut Membre Dernière intervention 27 mars 2013 872
11 mars 2012 à 14:20
'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 dimanche 11 mars 2012 Statut Membre Dernière intervention 17 août 2013
11 mars 2012 à 14:21
J'utilise WAMP server
0
kevin76110 Messages postés 4273 Date d'inscription vendredi 14 août 2009 Statut Membre Dernière intervention 27 mars 2013 872
11 mars 2012 à 14:24
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 dimanche 11 mars 2012 Statut Membre Dernière intervention 17 août 2013
11 mars 2012 à 14:32
Oui ils sont lancés !
0

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

Posez votre question
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
11 mars 2012 à 14:37
$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 dimanche 11 mars 2012 Statut Membre Dernière intervention 17 août 2013
11 mars 2012 à 14:43
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 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
11 mars 2012 à 14:49
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 dimanche 11 mars 2012 Statut Membre Dernière intervention 17 août 2013
11 mars 2012 à 14:55
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 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
11 mars 2012 à 15:01
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 dimanche 11 mars 2012 Statut Membre Dernière intervention 17 août 2013
11 mars 2012 à 15:04
Okei merci pour l'explication mais il n'y a pas d'erreur !
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
11 mars 2012 à 15:11
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 dimanche 11 mars 2012 Statut Membre Dernière intervention 17 août 2013
11 mars 2012 à 15:21
Okei ben merci kan meme e vais essayer de le faire passer par PDO !
0