Probleme requete ou boucle php

Résolu/Fermé
mikeb1992 Messages postés 280 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 6 janvier 2012 - 16 juil. 2008 à 21:55
mikeb1992 Messages postés 280 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 6 janvier 2012 - 16 juil. 2008 à 23:31
Bonsoir, je suis en train d'apprendre le php et j'essai de creer un livre d'or mais j'ai apparement un probleme avec une requete ( quoique je me demande si ca ne vient de la boucle que j'ai fait ou autre choses....)

Voici le bout de code qui me pose probleme :

$reponse = mysql_query('SELECT * FROM livreor ORDER BY ID DESC LIMIT' . $premierMessage . ', ' . $nombreDeMessageParPage);

while ($donnees = mysql_fetch_array($reponse))
{
echo '<p><strong>' . $donnees['pseudo'] . '</strong> a écrit :<br />' . $donnees['message'] . '</p>';
}

Et lorsque que j'affiche la page j'obtiens cette erreur :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\tests\livreor.php on line 76

Merci de m'aider !
A voir également:

18 réponses

gigaga Messages postés 2346 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301
16 juil. 2008 à 21:59
Tu dois bien utiliser une connexion MySQL : mysql_connect
et utilisé la ressource (la connexion) pour tes requetes.
0
mikeb1992 Messages postés 280 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 6 janvier 2012 31
16 juil. 2008 à 22:01
Ben pourtant je me connecte a mysql en faisant ca :

mysql_connect("localhost", "root", "");
mysql_select_db("base02");
0
gigaga Messages postés 2346 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301
16 juil. 2008 à 22:06
Essaie ce genre de code (en baladant ta connexion, en parametre) :

$connection = @mysql_connect($tp_database_host, $tp_database_username, $tp_database_password);
$database = @mysql_select_db($tp_database_name);

$posts = mysql_query('SELECT * FROM textpattern', $connection);

while ($post = mysql_fetch_array($posts)) {
...
}
0
mikeb1992 Messages postés 280 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 6 janvier 2012 31
16 juil. 2008 à 22:11
Euh desoler d'etre debutant mais je suis pas sure d'avoir tout compris le code que vient de poster... :(
0
gigaga Messages postés 2346 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301
16 juil. 2008 à 22:14
Récupere le résultat de mysql_connect et met le en parametre de ta fonction mysql_query.
0

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

Posez votre question
mikeb1992 Messages postés 280 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 6 janvier 2012 31
16 juil. 2008 à 22:23
Ben j'ai fait ce que tu m'a dit mais sa me donne la meme erreur !?
0
gigaga Messages postés 2346 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301
16 juil. 2008 à 22:28
Met ça et relance:
mysql_connect("localhost", "root", "") or die("Probleme avec la base de données");
0
mikeb1992 Messages postés 280 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 6 janvier 2012 31
16 juil. 2008 à 22:31
Et encore une fois, j'obtiens cette erreur :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\tests\livreor.php on line 76
0
gigaga Messages postés 2346 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301
16 juil. 2008 à 22:47
remplace :
$reponse = mysql_query('SELECT * FROM livreor ORDER BY ID DESC LIMIT' . $premierMessage . ', ' . $nombreDeMessageParPage);

par

$reponse = mysql_query('SELECT * FROM livreor ORDER BY ID DESC LIMIT' . $premierMessage . ', ' . $nombreDeMessageParPage) or die("Erreur SQL : $query<br/>".mysql_error());
0
mikeb1992 Messages postés 280 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 6 janvier 2012 31
16 juil. 2008 à 22:49
Voila ce que j'obtiens : Erreur SQL :

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 'LIMIT0, 20' at line 1
0
gigaga Messages postés 2346 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301
16 juil. 2008 à 22:53
remplace :

'SELECT * FROM livreor ORDER BY ID DESC LIMIT' . $premierMessage . ', ' . $nombreDeMessageParPage

par

'SELECT * FROM livreor ORDER BY ID DESC LIMIT ' . $premierMessage . ', ' . $nombreDeMessageParPage
(avec un espace apres LIMIT)
0
mikeb1992 Messages postés 280 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 6 janvier 2012 31
16 juil. 2008 à 22:58
Snif.. maintenant, j'ai ca :

Parse error: syntax error, unexpected T_STRING in C:\wamp\www\tests\livreor.php on line 30

la ligne 30 corresponds a mysql_select_db("base02");
0
gigaga Messages postés 2346 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301
16 juil. 2008 à 23:02
Met le code complet
0
mikeb1992 Messages postés 280 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 6 janvier 2012 31
16 juil. 2008 à 23:07
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Livre d'or</title>

<style type="text/css">
p, form
{
text-align : center;
}
</style>
</head>

<body>
<form method="post" action="livreor.php">
<p>Ceci est le livre d'or, alors venez me dire si vous aimez le site</p>
<p>Pseudo : <input name="pseudo" /><br />
Message :<br />
<textarea name="message" rows="12" cols="35"></textarea><br />
<input type="submit" value="Envoyer" />
</p>
</form>

<p>

<?php

mysql_connect("localhost", "root", "") or die("Probleme avec la base de données");
mysql_select_db("base02");

if (isset($_POST['pseudo']) AND isset($_POST['message']))
{
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
$message = nl2br($message);

mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "')");
}

$nombreDeMessageParPage = 20;

$retour = mysql_query('SELECT COUNT(*) AS nbre_message FROM livreor');
$donnees = mysql_fetch_array($retour);
$totalDesMessage = $donnees['nbre_message'];

$nombreDePage = ceil($totalDesMessage / $nombreDeMessageParPage);

echo 'Page : ';

for ($i = 1 ; $i <= $nombreDePage ; $i++)
{
echo '<a href="livreor.php?page=' . $i . '">' . $i . '</a> ';
}

?>

</p>

<?php

if (isset ($_GET['page']))
{
$page = $_GET['page'];
}

else
{
$page = 1;
}

$premierMessage = ($page - 1) * $nombreDeMessageParPage;

'SELECT * FROM livreor ORDER BY ID DESC LIMIT ' . $premierMessage . ', ' . $nombreDeMessageParPage) or die("Erreur SQL : $query<br/>".mysql_error());

while ($donnees = mysql_fetch_array($reponse))
{
echo '<p><strong>' . $donnees['pseudo'] . '</strong> a écrit :<br />' . $donnees['message'] . '</p>';
}

mysql_close();
?>
</body>
</html>
0
gigaga Messages postés 2346 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301
16 juil. 2008 à 23:10
remplace :
mysql_select_db("base02");

par :
mysql_select_db("base02") or die("Probleme avec le choix de base");
0
mikeb1992 Messages postés 280 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 6 janvier 2012 31
16 juil. 2008 à 23:12
j'ai juste ca :

Parse error: syntax error, unexpected ')' in C:\wamp\www\tests\livreor.php on line 74
0
gigaga Messages postés 2346 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301
16 juil. 2008 à 23:16
La ligne 74 devrait etre :
$reponse = mysql_query('SELECT * FROM livreor ORDER BY ID DESC LIMIT' . $premierMessage . ', ' . $nombreDeMessageParPage) or die("Erreur SQL : $query<br/>".mysql_error());

Et ce n'est pas ce qu'il y a!
0
mikeb1992 Messages postés 280 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 6 janvier 2012 31
16 juil. 2008 à 23:22
Oupppsssssss ! Tu as presque raison, j'ai donc mis :

$reponse = mysql_query('SELECT * FROM livreor ORDER BY ID DESC LIMIT' . $premierMessage . ', ' . $nombreDeMessageParPage) or die("Erreur SQL : $query<br/>".mysql_error());


mais j'avais une erreur dont nous avions parlé plus haut (l'espace apres le LIMIT)

Et maintenant ca marche !!!

Mille merci, j'ai du faire quelques erreur d'etouderies !! ^^
0
gigaga Messages postés 2346 Date d'inscription vendredi 20 juin 2008 Statut Membre Dernière intervention 22 août 2014 301
16 juil. 2008 à 23:26
pas de souci. Tu mets le statut "résolu"?
0
mikeb1992 Messages postés 280 Date d'inscription lundi 10 décembre 2007 Statut Membre Dernière intervention 6 janvier 2012 31
16 juil. 2008 à 23:31
Oui, c'est parfait !
0