Probleme requete ou boucle php

Résolu
mikeb1992 Messages postés 280 Statut Membre -  
mikeb1992 Messages postés 280 Statut Membre -
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 !
Configuration: Windows XP
Firefox 3.0

18 réponses

  1. gigaga Messages postés 2347 Date d'inscription   Statut Membre Dernière intervention   301
     
    Tu dois bien utiliser une connexion MySQL : mysql_connect
    et utilisé la ressource (la connexion) pour tes requetes.
    0
  2. mikeb1992 Messages postés 280 Statut Membre 31
     
    Ben pourtant je me connecte a mysql en faisant ca :

    mysql_connect("localhost", "root", "");
    mysql_select_db("base02");
    0
    1. gigaga Messages postés 2347 Date d'inscription   Statut Membre Dernière intervention   301
       
      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
  3. mikeb1992 Messages postés 280 Statut Membre 31
     
    Euh desoler d'etre debutant mais je suis pas sure d'avoir tout compris le code que vient de poster... :(
    0
  4. gigaga Messages postés 2347 Date d'inscription   Statut Membre Dernière intervention   301
     
    Récupere le résultat de mysql_connect et met le en parametre de ta fonction mysql_query.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. mikeb1992 Messages postés 280 Statut Membre 31
     
    Ben j'ai fait ce que tu m'a dit mais sa me donne la meme erreur !?
    0
  7. gigaga Messages postés 2347 Date d'inscription   Statut Membre Dernière intervention   301
     
    Met ça et relance:
    mysql_connect("localhost", "root", "") or die("Probleme avec la base de données");
    0
  8. mikeb1992 Messages postés 280 Statut Membre 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
  9. gigaga Messages postés 2347 Date d'inscription   Statut Membre Dernière intervention   301
     
    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
  10. mikeb1992 Messages postés 280 Statut Membre 31
     
    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
  11. gigaga Messages postés 2347 Date d'inscription   Statut Membre Dernière intervention   301
     
    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
  12. mikeb1992 Messages postés 280 Statut Membre 31
     
    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
    1. gigaga Messages postés 2347 Date d'inscription   Statut Membre Dernière intervention   301
       
      Met le code complet
      0
  13. mikeb1992 Messages postés 280 Statut Membre 31
     
    <!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
  14. gigaga Messages postés 2347 Date d'inscription   Statut Membre Dernière intervention   301
     
    remplace :
    mysql_select_db("base02");

    par :
    mysql_select_db("base02") or die("Probleme avec le choix de base");
    0
  15. mikeb1992 Messages postés 280 Statut Membre 31
     
    j'ai juste ca :

    Parse error: syntax error, unexpected ')' in C:\wamp\www\tests\livreor.php on line 74
    0
  16. gigaga Messages postés 2347 Date d'inscription   Statut Membre Dernière intervention   301
     
    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
  17. mikeb1992 Messages postés 280 Statut Membre 31
     
    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
  18. gigaga Messages postés 2347 Date d'inscription   Statut Membre Dernière intervention   301
     
    pas de souci. Tu mets le statut "résolu"?
    0
  19. mikeb1992 Messages postés 280 Statut Membre 31
     
    Oui, c'est parfait !
    0