Problème de boucle while...

Résolu
globalslyced Messages postés 55 Statut Membre -  
globalslyced Messages postés 55 Statut Membre -
Bonjour,

Je suis en train d'utiliser un script de news pour un site, mais je ne comprends pas certains messages d'erreurs.
Je m'explique :
En utilisant la boucle while comme ceci :

_________________________________
<?php
require 'conf.php';
mysql_connect($mysql_host,$mysql_login,$mysql_passe) OR die('<p>Connexion impossible à la base de données. Réessayez plus tard.</p>');

$retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 5');
while ($donnees = mysql_fetch_array($retour))
{
?>
<div class="news">
<h3>
<?php echo $donnees['titre']; ?>
<em>le <?php echo date('d/m/Y à H\hi', $donnees['timestamp']); ?></em>
</h3>

<p>
<?php

$contenu = nl2br(stripslashes($donnees['contenu']));
echo $contenu;
?>
</p>
</div>
<?php
}
?>
_________________________________

Et voici le message d'erreur qu'il m'affiche :

_________________________________
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /mnt/141/sdb/9/e/coldfiction/Manu/Include/news.php on line 6
_________________________________
Je précise également que mon hébergeur est "Free" et que j'utilise "PHPMyAdmin".
Alors si quelqu'un aurait une solution à me proposer afin de régler mon problème ce serait cool :p

Je vous remercie d'avance
Configuration: Windows XP
Firefox 2.0.0.13

3 réponses

  1. giheller
     
    $query = "SELECT * FROM news ORDER BY id DESC LIMIT 0, 5";
    $retour=mysql_query($query);
    // Vérification du résultat
    // Ceci montre la requête envoyée à MySQL ainsi que l'erreur. Utile pour déboguer.
    if (!$retour) {
    $message = 'Requête invalide : ' . mysql_error() . "\n";
    $message .= 'Requête complète : ' . $query;
    die($message);
    }

    while ($row = mysql_fetch_assoc($retour)) {

    0
  2. agakuk
     
    Bonjour,
    Les balises <p></p> n'ont rien à faire dans le die('') vu que le texte entre parenthèse de or die est censé contenir un message d'erreur PHP et non HTML.

    L'erreur est signalé en ligne 6, a mon avis tout vient de là: $retour ne contient aucune valeur parce que la ligne de connexion à la base est illégale, le fetch_Array du while ne peut rien faire avec $retour, et bien sûr le message du die() ne s'affiche pas à cause des balises html qui le font planter, et le die n'arrêtes pas le programme bien que la connexion ait échouée.

    Vous pouvez essayer die(mysql_error()); pour voir si c'est ça ou non.
    0
  3. globalslyced Messages postés 55 Statut Membre 3
     
    Bonjour à tous,

    J'ai bien suivi vos conseil et cela marche à merveille ! Au passage j'ai changé deux ou trois éléments.
    Merci encore pour vos réponses,

    Cordialement Globalslyced
    0