8792 sujets

Développement web côté serveur, CMS

Bonsoir à tous,

Voilà, j'ai commencé a me crée un blog,

Mais le Problème, il m'affiche bien le nombre d'articles crées, mais il m'affiche que le 1er Article 4 fois o_O

Alors que dans ma base de donnée, il y a bien 4 articles différents

Et c'est pourquoi je viens vous demandez de l'aide Smiley langue

Voici le script :
http://simmstein.be/wall-WQotMiAC-php.htm

J'aimerai que vous me disiez d'ou vient le probleme et comment le résoudre Smiley smile

Par avance MERCI Smiley smile
Modifié par thymo (11 Aug 2006 - 11:20)
J'ai regardé en diagonale, mais je crois savoir de quoi ça vient : en premier tu attribues sans faire de boucle à ces variables (autrement dit le premier champ :

 $reponse = mysql_query("SELECT * FROM blog_articles"); 
            $donnees = mysql_fetch_array($reponse);
            
            $titre = addslashes($donnees['titre']);
            $pseudo = $donnees['pseudo'];
            $date = $donnees['date'];
            $contenu = addslashes($donnees['contenu']);
            $contenu = nl2br($donnees['contenu'])


Et ensuite tu lui demandes de boucler en affichant ces variables


while ($donnees = mysql_fetch_array($reponse))
{ echo '<div id="milieu">
            <div class="articles">
            <br />
            <h1><strong>'.$titre.'</strong> | '.$pseudo.', le '.$time.'</h1>
            <br />
            <h2> '.$contenu.'</h2><br />
            <h3><a href="#">1 commentaires</a></h3><br />
            </div>';
} ?> 


Y a rien de plus logique, il va faire 4 fois la boucle et va afficher 4 fois ces variables. Smiley cligne
Salut.

Pour prolonger la réponse de Nico3333fr, il faut modifier la boucle pour assigner les valeurs de tes variables à l'intérieur :
while ($donnees = mysql_fetch_array($reponse)) { 
            $donnees = mysql_fetch_array($reponse);
            $titre = addslashes($donnees['titre']);
            $pseudo = $donnees['pseudo'];
            $date = $donnees['date'];
            $contenu = addslashes($donnees['contenu']);
            echo '<div id="milieu">
            <div class="articles">
            <br />
            <h1><strong>'.$titre.'</strong> | '.$pseudo.', le '.$time.'</h1>
            <br />
            <h2> '.$contenu.'</h2><br />
            <h3><a href="#">1 commentaires</a></h3><br />
            </div>';
}


D'autre part, je ne sais pas à quoi sert ta fonction "nl2br" mais si tu l'utilises, la ligne précédente,
$contenu = addslashes($donnees['contenu']);
est inutile : tu réassignes 2 valeurs différentes à la même variable, la seconde écrase la première.

Enfin, les "<br />" que tu fais afficher à ton code PHP m'ont l'air superflus ... Tu peux utiliser les CSS pour styler les éléments hn autant que tu veux. Et comme de toutes façons, ce sont des éléments block, le retour à la ligne se fera très bien tout seul Smiley cligne
Ma fonction nl2br transforme mais saut de ligne d'un formulaire en <br />

Bref dans un formulaire si je fais un saut de ligne, cette fonction permet de l'afficher Smiley cligne

Pouyr l'utilisation de CSS, je te rassure, c'est deja fais, ceci est une mise en page provisoire pour les tests Smiley langue

Je ne vois pas comment assigner des les valeurs a mes variables, ce n'est pas mes $variables = $donnes['variables'] qui s'en charge ? Smiley eek