IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

PHP, PDO : des sauts de lignes non voulus avec la balise <table> ? [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 23
    Points : 15
    Points
    15
    Par défaut PHP, PDO : des sauts de lignes non voulus avec la balise <table> ?
    Bonjour,

    Je n'arrive pas à identifier la cause de la génération de nombreux sauts de lignes avant l'écriture de mon tableau....
    Apparemment ça vient de la balise <table> !?
    Le serveur est un Raspberry Pi avec Apache2 + MariaDB.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Document sans titre</title>
    </head>
     
    <body>
    <?php
     
    try
    { $bdd = new PDO('mysql:host=192.168.0.79;dbname=capteurs;charset=utf8', 'login', 'password');}
    catch(Exception $e)
    {die('Erreur : '.$e->getMessage());}
     
    $reponse = $bdd->query('SELECT * FROM `PiTemp` ORDER BY date DESC LIMIT 0, 1');
     
    while ($donnees = $reponse->fetch())
    {
    	echo '<table><tr><th><strong><font style="color:#0000ff;text-align:\'left\';">Dernier relevé piscine : </th>
    		<td><strong><font style="color:#0000ff;text-align:\'left\';">' . $donnees['date'] .'<br /></td></tr>';
    	echo '<tr><th><font style="text-align:left;">Température eau : </th>
    		<td>' . $donnees['sonde2'] . ' °C </td></tr><br />';
        echo '<tr><th>Température de l\'air : </td>
    		<td>' . $donnees['sonde1'] .' °C </th></tr></font><br />';
    }
     
    $reponse2 = $bdd->query('SELECT * FROM `meteo_maison` ORDER BY date DESC LIMIT 0, 1');
     
    while ($donnees = $reponse2->fetch())
    {
        echo '<tr><th><strong><strong><font style="color:#0000ff;text-align:\'left\';">Dernier relevé bureau : </th>
    		<td><strong><font style="color:#0000ff;text-align:\'left\';">' . $donnees['date'] .'<br /></td></tr>';
    	echo '<tr><th>Température bureau : </th>
    		<td>' . $donnees['house_temp'] . ' °C </td></tr><br />';
        echo '<tr><th>Pression atmosph. : </th>
    		<td>' . $donnees['house_press'] .' hPa </td></tr><br />';
    }
     
    $reponse->closeCursor();
    $reponse2->closeCursor();
    ?>
     
    </body>
    </html>
    Une idée ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    • Des <br /> superflus et surtout mal placés............
    • Une structure malmenées (balise <table> ouverte à l'intérieur d'un while, mais jamais fermée,...)
    • Des balises obsolètes (<font...>,...) et/ou jamais fermées (<strong>, <font>,...)

    La liste des erreurs est longue !

    As-tu regardé le code HTML généré ? ("Ctrl"+"U")

    Dernière modification par Invité ; 03/09/2018 à 11h49.

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    • Des <br /> superflus............
    Pour expliciter ce point : lorsque tu crées une <table> rien ne peut être écrit à l'extérieur d'un <td> (ou <th>) à part les balises de structure de la table (tbody, tr...)
    Donc ceci est OK :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <table>
    <tr><td>Ligne<br> 1</td></tr>
    <tr><td>Ligne<br> 2</td></tr>
    </table>
    Ceci ne l'est pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <table>
    <tr><td>Ligne 1</td></tr><br>
    <tr><td>Ligne 2</td></tr>
    </table>
    En général, les navigateurs se débarrassent de tout ce qui ne devrait pas se trouver dans le tableau en l'affichant avant ou après la table.
    Donc tes sauts de lignes intempestifs proviennent sans doute de <br> à l'extérieur de <td>.

    La chose à faire dans ce genre de cas, c'est de construire proprement le tableau statique (de préférence avec une validation HTML/CSS pour vérifier que tout est d'équerre) et ensuite le dynamiser.
    Sinon, c'est comme programmer un robot à construire les voitures sans avoir tracé les plans et essayé de construire un modèle.

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Il y a aussi ça qui choque :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while ($donnees = $reponse->fetch())
    {
    	echo '<table>
    À chaque ligne de résultat => un tableau. La balise <table> ne devrait-elle pas être en dehors de la boucle ?

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 75
    Points : 190
    Points
    190
    Par défaut
    Faire du echo de balises html c'est illisible comme code, et impossible à maintenir. C'est selon moi à proscrire totalement.

    Un exemple de code lisible pour un tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <table>
        <thead>
            <tr>
                <th>Date</th>
                <th>Sonde 1</th>
                <th>Sonde 2</th>
            </tr>
        </thead>
        <tbody>
            <?php while ($donnees = $reponse->fetch()): ?>
                <tr>
                    <td><?php echo $donnees['date']; ?></td>
                    <td><?php echo $donnees['sonde1']; ?></td>
                    <td><?php echo $donnees['sonde2']; ?></td>
                </tr>
            <?php endwhile; ?>
        </tbody>
    </table>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CS3] Non respect des saut de ligne en fin de paragraphe dans xml from fmpro
    Par didde3866 dans le forum Dreamweaver
    Réponses: 2
    Dernier message: 23/01/2010, 09h44
  2. [PHP-JS] Traitement des sauts de lignes
    Par Seta-san dans le forum Langage
    Réponses: 6
    Dernier message: 16/03/2009, 19h49
  3. [php] Affichage des sauts de ligne </br>
    Par Flushovsky dans le forum Langage
    Réponses: 3
    Dernier message: 21/12/2005, 15h51
  4. [MySQL] Formulaire php + bdd = perte des sauts de ligne html ?
    Par sunshine33 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 03/10/2005, 11h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo