Bonjour,
je vient de réaliser votre tutoriel sur le système de news en php.
Tout marche bien, mais j'aimerai personnaliser ce système avec du CSS.

J'ai donc voulu transformer ceci en html:

<div class="post">
    <div class="img-post">
        <div class="date">
            <p>21<br/><span class="mois">Sept</span></p>
        </div>
        <a href="#"><img src="img/img.gif" alt="Up"/></a>
    </div>
    <div class="titre-post"><h2>Nouvelle Sous-Partie: Disney</h2></div>
    <div class="by-post">Par <a href="#">Kevin Boirel</a>, le 21 Septembre 2011</div>
    <div class="content-post"><p>Depuis ce matin, la catégorie «Disney» a eut une grande mise à jour.
En effet, une trentaine de fonds sont à présent disponibles pour la création de signature. Vous pourrez donc des à présent créer une signature avec La Haut, Nemo, Shrek, et bien d’autres fonds disponibles encore.
Vous y accéderai par ici, ou en vous dirigeant grace au menu sur votre gauche «Disney».<br/>
<div class="rmp"><a href="#">Read More.</a></div></p>
</div><div class="clear"></div></div>

En ceci en php:

<?php  

            require "pgs/confignews.php";
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
mysql_select_db(DB_BDD);

            $sql="SELECT * FROM news";
$req= mysql_query($sql) or die('Erreur SQL!<br>'.$sql.'<br>'.mysql_error());
while($data=mysql_fetch_assoc($req)){
echo "<div class=\"post\">
    <div class=\"img-post\">
        <div class=\"date\">
            <p>";
echo "".date("j",strtotime($data'date']))."";}
echo "<br/>

                <span class=\"mois\">Sept</span></p>
        </div>
        <a href=\"#\"><img src=\"img/img.gif\" alt=\"Up\"/></a>
    </div>";
            ?>

    <?php

$sql="SELECT * FROM news";
$req= mysql_query($sql) or die('Erreur SQL!<br>'.$sql.'<br>'.mysql_error());
while($data=mysql_fetch_assoc($req)){
echo "<div class=\"titre-post\"><h2>{$data'titre']}</h2></div>";
echo "<div class=\"by-post\">Par <a href=\"#\">Kevin Boirel</a><a>, le </a>".date("j/n/Y",strtotime($data'date']))."</div>";
echo "<div class=\"content-post\"><p>{$data'contenu']}<br/><div class=\"rmp\"><a href=\"#\">Read More.</a></div></p></div><div class=\"clear\"></div></div>";
}

?>

Hélas ca ne marche pas ... En regardant le code source de la page nous avons quelque chose de vraiment bizarre oO

4 réponses


Gregory
Réponse acceptée

Déjà pourquoi faire 2 fois la même requête ? ca ne fait que surcharger mysql pour rien
Fais un truc comme ça a savoir sue je n'ai rien sécurisé

<?php  

            require "pgs/confignews.php";
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
mysql_select_db(DB_BDD);

            $sql="SELECT * FROM news";
$req= mysql_query($sql) or die('Erreur SQL!<br>'.$sql.'<br>'.mysql_error());
while($data=mysql_fetch_assoc($req)):
?>
<div class="post">
    <div class="img-post">
        <div class="date">
            <p><?php echo $data'j'];?><br/><span class="mois"><?php echo $data'm'];?></span></p>
        </div>
        <a href="<?php echo $data'url'];?>"><img src="<?php echo $data'urlImg'];?>" alt="Up"/></a>
    </div>
    <div class="titre-post"><h2><?php echo $data'title'];?></h2></div>
    <div class="by-post">Par <a href="#"><?php echo $data'author'];?></a>, le 21 Septembre 2011</div>
    <div class="content-post"><p><?php echo $data'content'];?><br/>
<div class="rmp"><a href="#">Read More.</a></div></p>
</div><div class="clear"></div></div>
<?php endwhile;?>
Kboirel
Auteur

Merci vraiment pour ta réponse ^^. En gros, la tu me propose un système ou je peux, en plus du précédent, prendre le mois, le lien de l'image a droite, l'image à droite ainsi que l'auteur. Cependant,

<div class="post">
    <div class="img-post">
        <div

Par exemple,
est mis en html et pas en echo, il ne se générera qu'une seule fois et non pas à chaque message non ?
Merci d'avance encore.

Non ta boucle while englobe toute la div class post donc tout ce qui est entre la boucle sera répété tant que la condition du while sera respectée.
le while(condition) : est une autre façon d'écrire while(condition){}, ce qui permet justement de pouvoir écrire du html à l'intérieur sans mettre de echo et donc d'être plus lisible

Mais je te renvoi à la documentation php du while pour plus d'info ;)

Kboirel
Auteur

Voila j'ai adapté le script que vous m'avez donné. Je vous en remercie vraiment !