Bonsoir à tous.

Je viens vers vous à cause d'un petit problème concernant la mise en page d'un echo en PHP.

Je suis en train de travailler sur un blog pour mon portfolio, j'ai donc organisé mon code comme ça (je commence aussi PHP, désolé si le code vous semble mauvais) :

<section class="section post">
            <div class="l-container">
                <div class="post">
                <?php
                    while ($donnees = $reponse->fetch())
                    {
                    ?>
                    <div class="post-title">
                        <h2><?php echo $donnees'titre']; ?></h2>
                    </div>
                    <div class="post-content">
                        <p><?php echo $donnees'contenu']; ?></p>
                    </div>
                    <?php
                    }
                    $reponse -> closeCursor();
                ?>
                </div>
            </div>
        </section>

Ce code affiche correctement les articles de ma base de données. Le hic comme je disais plus haut concerne la mise en page. Je souhaite mettre une marge (de 50px disons) entre mes articles (=post). J'ai essayé d'appliquer un margin sur ma class post, mais ça ne fonctionne visiblement pas.

Je pense que le problème vient de l'organisation de mon code PHP et de ma class post, mais je n'arrive pas à trouver la solution.

Pouvez-vous m'aider ?

Merci beaucoup.

5 réponses


Glaived
Réponse acceptée

Utilise plutot la synthax php axé template

<section class="section post">
    <div class="l-container">
        <?php while($donnees = $reponse->fetch()): ?>
            <div class="post">
                <div class="post-title">
                    <h2><?= $donnees'titre'] ?></h2>
                </div>
                <div class="post-content">
                    <p><?= $donnees'contenu'] ?></p>
                </div>
            </div>
        <?php endwhile ?>
    </div>
</section>
<?php $reponse->closeCursor() ?>

Si ton sujet est résolu, n’oublie pas de cliquer sur "Valider cette réponse" !

jo-jo-123
Réponse acceptée

Ta div ne doit pas être dans le code php

<section class="section post">
        <div class="l-container">
        <?php
        while ($donnees = $reponse->fetch())
        {
            ?>
            <div class="post">
                <div class="post-title">
                    <h2><?php echo $donnees'titre']; ?></h2>
                </div>

                <div class="post-content">
                    <p><?php echo $donnees'contenu']; ?></p>
                </div>
            </div> < ---- la div de mon post
            <?php   
            }
            $reponse -> closeCursor();
            ?>
        </div>
</section>

Tu devrais mettre <div class="post"> dans ta boucle while. Regarde le code source généré, tu comprendras vite l'erreur :)

Merci pour ta réponse, mais php me retourne une page blanche.

<section class="section post">
            <div class="l-container">
                <?php
                    while ($donnees = $reponse->fetch())
                    {
                        <div class="post">
                    ?>
                    <div class="post-title">
                        <h2><?php echo $donnees'titre']; ?></h2>
                    </div>
                    <div class="post-content">
                        <p><?php echo $donnees'contenu']; ?></p>
                    </div>
                    <?php
                        </div> //la div de mon post
                    }
                    $reponse -> closeCursor();
                ?>
                </div>
            </div>
        </section>

Pourtant, ma div se ferme (pour moi) au bon endroit.

Merci à vous deux, j'ai compris. :)