Petit soucis d'affichage d'une requete

Fermé
stefde3 - 15 nov. 2010 à 01:37
 stefde3 - 15 nov. 2010 à 03:03
Bonjour,

Voilà, je souhaiterai afficher toutes les données de ma base de données concernant la class news de ma BDD

Les données y sont bien mais une seule donnée s'affiche.

Voici mon code :

<?php
include_once("PHP/config.php");
include_once("PHP/function.php");

$requete = mysql_query("SELECT * FROM news ORDER BY id ASC, id LIMIT 0,100") or die(mysql_error());
$donnee = mysql_fetch_array($requete);
while (mysql_fetch_array($requete)){
    $titre = htmlspecialchars(trim($donnee["titre"]));
    $news = htmlspecialchars(trim($donnee["new"]));
}
?>

<!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>Terre Noire - Jeu de stratégie médiéval par navigateur</title>
<link rel="stylesheet" href="css/style.css"  media="screen" />
</head>

<body>
<div style="width:850px;margin:0 auto;">
 <div class="ico">
     <span class="ico_FB"><a href="#"><img src="img/blank.png" alt="" /></a></span><span class="ico_rss"><a href="#"><img src="img/blank.png" alt="" /></a></span>
 </div>
  <div id="header">
   <div class="bt">
    <span class="bt_mail"><a href="#"><img src="img/blank.png" alt="" width="60" height="50" /></a></span>
    </div>
   <div class="bt2">
    <span class="bt_forum"><a href="http://forum.terre-noire.fr/"><img src="img/blank.png" alt="" width="60" height="50" /></a></span>
   </div>
 </div>
  <div id="scroll">
  <?php 
       echo '<span class="title"> '.$titre.'</span><br />';
     echo $news; 
     echo '<br /><br />';
  ?>
</div>
  <div id="bottom">&nbsp;</div>
</div>
</body>
</html>



Merci de vos réponses.

4 réponses

Framboos Messages postés 85 Date d'inscription samedi 9 janvier 2010 Statut Membre Dernière intervention 27 septembre 2013 9
15 nov. 2010 à 01:44
Bonsoir,

Tu as :
...
$donnee = mysql_fetch_array($requete);
while (mysql_fetch_array($requete)){
    $titre = htmlspecialchars(trim($donnee["titre"]));
    $news = htmlspecialchars(trim($donnee["new"]));
}
?>


il faut :
while ($donnee = mysql_fetch_array($requete)){
    $titre = htmlspecialchars(trim($donnee["titre"]));
    $news = htmlspecialchars(trim($donnee["new"]));
}
?>
0
Merci de cette réponse.

Cependant cela ne change rien. C'est toujours le dernier qui s'affiche et c'est le seul...

Peut-être manque t'il un "if" pendant le while mais je ne suis pas sur.
0
Framboos Messages postés 85 Date d'inscription samedi 9 janvier 2010 Statut Membre Dernière intervention 27 septembre 2013 9
Modifié par Framboos le 15/11/2010 à 02:30
Oui c'est moi j'ai pas vraiment fait attention non plus !!

Forcement ca n'affiche que la dernière réponse ...
Car tu récupères bien toutes tes valeurs mais tu ne les affichent pas (enfin si juste une seul fois). Donc $titre et $news vont changer de valeurs sans être afficher.

Voici une methode comment proceder :

while ($donnee = mysql_fetch_array($requete)){   
    $titre = htmlspecialchars(trim($donnee["titre"]));   
    $news = htmlspecialchars(trim($donnee["new"]));   


    echo '<span class="title"> '.$titre.'</span><br />';   
    echo $news;    
    echo '<br /><br />';   
}


Bon on va se rendre compte que ca fonctionne, mais pas de la manière attendu, tout s'affiche en haut de la page ... Alors pour régler le problème

function afficherAllNews()   
{   
$requete = mysql_query("SELECT * FROM news ORDER BY id ASC, id LIMIT 0,100") or die(mysql_error());   

while ($donnee = mysql_fetch_array($requete)){   
    $titre = htmlspecialchars(trim($donnee["titre"]));   
    $news = htmlspecialchars(trim($donnee["new"]));   

    echo '<span class="title"> '.$titre.'</span><br />';   
    echo $news;    
    echo '<br /><br />';   
}   

}   


Puis là ou tu avais :

<div id="scroll">   
  <?php    
       echo '<span class="title"> '.$titre.'</span><br />';   
     echo $news;    
     echo '<br /><br />';   
  ?>   
</div>   


Tu le remplace par :
<?php afficherAllNews(); ?>   


Normalement ca fonctionne ...
0
Merci beaucoup :)

en effet ça fonctionne. J'avais aussi penser à la concaténation des deux variables en une seule mais par la "function" en effet c'est plus simple. Merci encore.

Bonne soirée ou nuit pour les autres ;)
0