Erreur mysql_fetch_array()
christo470
Messages postés
35
Statut
Membre
-
christo470 Messages postés 35 Statut Membre -
christo470 Messages postés 35 Statut Membre -
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 :
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
-
'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 ?
-
-
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. -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
$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 -
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 ".
-
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 -
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.
-
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
-
Okei merci pour l'explication mais il n'y a pas d'erreur !
-
l'erreur se situe forcement à cet endroit là
$reponse renvoie une erreur, donc cela vient du mysql_query -
Okei ben merci kan meme e vais essayer de le faire passer par PDO !