Php/mysql, <table> et cellules vides

Fermé
jonas001 Messages postés 83 Date d'inscription vendredi 12 mars 2004 Statut Membre Dernière intervention 31 mars 2017 - 26 janv. 2008 à 19:31
 aaa - 27 juil. 2009 à 09:59
Bonjour,

J'ai une table que j'affiche dans une page php avec quelque chose du genre :

<table border="1">
<?
$requete = mysql_query("SELECT * FROM inscriptions_bafa");
while($data=mysql_fetch_object($requete)){
echo '<tr><td>',$data->nom,'</td><td>',$data->prenom,'</td><td>',$data->adresse2,'</td></tr>';
etc.

Mon souci et ma question sont tout bêtes il me semble, c'est juste du domaine de l'esthétique.
En effet à l'affichage, les cellules qui ne contiennent rien ne comportent pas de bordures et ça fait tout moche :-) Vous avez un exemple ici : http://jonas001.free.fr/ex.jpg

Comment éviter ça ? J'ai essayé deux pistes : soit forcer la bordure mais je n'ai trouvée aucune commande pour faire cela, soit remplir la variable avec une chaine de caractères ne comportant qu'un espace ... évidemment cela n'a rien donné non plus. Le souci étant évidemment que je ne veux pas mettre n'importe quoi dans les variables vides genre un point ou un tiret.

Si quelqu'un a une piste je suis preneur !

Merci beaucoup.

Jonas
A voir également:

12 réponses

Peut-être que j'arrive trop tard.. mais pour les autres qui passeront par là avec le même problème...

Il suffit tout simplement de mettre &nb-sp; (enlever le -) entre les balises <td> et </td>

echo '<td> &nb-sp; </td>'; // enlever le -

=> Affiche bien une cellule vide avec un cadre
4
CSS :

empty-cells: show
3
Gihef Messages postés 5150 Date d'inscription mercredi 20 juillet 2005 Statut Contributeur Dernière intervention 20 février 2023 2 775
26 janv. 2008 à 23:27
Bonjour,

il existe un moyen simple de définir précisément les éléments d'une page, de les mettre en forme : CSS.

Abandonne le border="1" et passe par un peu de styles.

Par exemple
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title></title>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <style type="text/css">
    html, body {
      margin: 0;
      padding: 0;
      text-align: center;
      color : #344979;
      }
  table {
    text-align: left;
    margin : 10px auto;
    width: 250px;
    height: 166px;
    background-color: #b0d1f4;
    }
  .tr1 {
    text-align : center;
    font-weight : bold;
    }
  #table2 {
    border : 2px solid #008;
    }
  #table2 td {
    border : 1px solid #da70d6;
    }
  #table3 {
    border : 2px solid #ff1493;
    }
  #table3 td {
    border : 1px solid #a0522d;
    padding : 5px;
    }
  #table4 {
    border : 2px solid #ffd700;
    }
  #table4 td {
    border-bottom : 1px solid #daa520;
    padding : 5px;
    }
  #table5 {
    border : 2px solid #ff4500;
    }
  #table5 .tr2 {
    padding : 5px;
    background-color : #c1e2f4;
    }
  #table5 td {
    border-bottom : 1px solid #fff;
    }
    </style>

</head>
<body>
<br />
      <table border="1" cellpadding="2" cellspacing="2">
        <tbody>
          <tr class="tr1">
            <td>22222222</td>
            <td>33333333</td>
          </tr>
          <tr>
            <td>Marion</td>
            <td>n° 2512</td>
          </tr>
          <tr>
            <td>Maeva</td>
            <td></td>
          </tr>
          <tr>
            <td>Alice</td>
            <td></td>
          </tr>
          <tr>
            <td>Olivier</td>
            <td>26 bd du Mal K&oelig;nig</td>
          </tr>
          <tr>
            <td>Céline</td>
            <td></td>
          </tr>
        </tbody>
      </table>
<br />
      <table id="table2" border="0" cellpadding="2" cellspacing="2">
        <tbody>
          <tr class="tr1">
            <td>22222222</td>
            <td>33333333</td>
          </tr>
          <tr>
            <td>Marion</td>
            <td>n° 2512</td>
          </tr>
          <tr>
            <td>Maeva</td>
            <td></td>
          </tr>
          <tr>
            <td>Alice</td>
            <td></td>
          </tr>
          <tr>
            <td>Olivier</td>
            <td>26 bd du Mal K&oelig;nig</td>
          </tr>
          <tr>
            <td>Céline</td>
            <td></td>
          </tr>
        </tbody>
      </table>
<br />
      <table id="table3" border="0" cellpadding="0" cellspacing="0">
        <tbody>
          <tr class="tr1">
            <td>22222222</td>
            <td>33333333</td>
          </tr>
          <tr>
            <td>Marion</td>
            <td>n° 2512</td>
          </tr>
          <tr>
            <td>Maeva</td>
            <td></td>
          </tr>
          <tr>
            <td>Alice</td>
            <td></td>
          </tr>
          <tr>
            <td>Olivier</td>
            <td>26 bd du Mal K&oelig;nig</td>
          </tr>
          <tr>
            <td>Céline</td>
            <td></td>
          </tr>
        </tbody>
      </table>
<br />
      <table id="table4" border="0" cellpadding="0" cellspacing="0">
        <tbody>
          <tr class="tr1">
            <td>22222222</td>
            <td>33333333</td>
          </tr>
          <tr>
            <td>Marion</td>
            <td>n° 2512</td>
          </tr>
          <tr>
            <td>Maeva</td>
            <td></td>
          </tr>
          <tr>
            <td>Alice</td>
            <td></td>
          </tr>
          <tr>
            <td>Olivier</td>
            <td>26 bd du Mal K&oelig;nig</td>
          </tr>
          <tr>
            <td>Céline</td>
            <td></td>
          </tr>
        </tbody>
      </table>
<br />
      <table id="table5" border="0" cellpadding="0" cellspacing="0">
        <tbody>
          <tr class="tr1">
            <td>22222222</td>
            <td>33333333</td>
          </tr>
          <tr class="tr2">
            <td>Marion</td>
            <td>n° 2512</td>
          </tr>
          <tr>
            <td>Maeva</td>
            <td></td>
          </tr>
          <tr class="tr2">
            <td>Alice</td>
            <td></td>
          </tr>
          <tr>
            <td>Olivier</td>
            <td>26 bd du Mal K&oelig;nig</td>
          </tr>
          <tr class="tr2">
            <td>Céline</td>
            <td></td>
          </tr>
        </tbody>
      </table>
<br />
</body>
</html>

--
1
Gihef Messages postés 5150 Date d'inscription mercredi 20 juillet 2005 Statut Contributeur Dernière intervention 20 février 2023 2 775
27 janv. 2008 à 13:02
'tin, je ne comprenais pas.
Chez moi ça marche, mais pas le code que je trouve maintenant.

Il faut un DOCTYPE à ton document.
Celui que je te proposais ou un autre, <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> par exemple.


++
Un id ne doit être utilisé qu'une fois.

--
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jonas001 Messages postés 83 Date d'inscription vendredi 12 mars 2004 Statut Membre Dernière intervention 31 mars 2017 9
27 janv. 2008 à 15:19
Alors là ... je dis respect et hourrah !

Impec, ça marche parfaitement. Je vais essayer de comprendre pourquoi, et que sont les doctype, mais mon problème est résolu.
Grand merci pour tes conseils et désolé pour les contrtemps, si j'avais mis le doctype d'entrée je t'aurais fait perdre moins de temps.
Encore grand merci !
1
jonas001 Messages postés 83 Date d'inscription vendredi 12 mars 2004 Statut Membre Dernière intervention 31 mars 2017 9
27 janv. 2008 à 08:55
Merci pour ta réponse et ton code, c'est très gentil d'avoit tapé tout ça.

Malheureusement le problème demeure ... j'ai refait un exemple avec tes 5 tableaux ici : http://verslescimes.free.fr/ex.php . Je pense vraiment qu'il y a un "truc" avec le php/mysql . C'est dommage, j'ai cru qu'en passant par les CSS on aurait pu forcer la bordure ... mais non. Gargl !!!!

Jonas
0
Gihef Messages postés 5150 Date d'inscription mercredi 20 juillet 2005 Statut Contributeur Dernière intervention 20 février 2023 2 775
27 janv. 2008 à 11:18
Désolé, je n'avais pas testé avec Ff.

J'ai ajouté
td { width : 100%; }
et ça semble lui convenir.

Teste.

--
0
jonas001 Messages postés 83 Date d'inscription vendredi 12 mars 2004 Statut Membre Dernière intervention 31 mars 2017 9
27 janv. 2008 à 11:30
Hélas non, ça ne marche toujours pas pour ces fichues cellules avec une variable vide ...

GRRRRRR ... :-)
0
Gihef Messages postés 5150 Date d'inscription mercredi 20 juillet 2005 Statut Contributeur Dernière intervention 20 février 2023 2 775
27 janv. 2008 à 11:46
Tu définis ça
#td { width : 100%; }
td n'est pas un id.
Sauf si
<td id="td">
Mais ça fait bizarre…


Ça
td { width : 100%; }
s'adresse à tous les <td> de la page.

(-;

--
0
jonas001 Messages postés 83 Date d'inscription vendredi 12 mars 2004 Statut Membre Dernière intervention 31 mars 2017 9
27 janv. 2008 à 12:01
Ok pour le #, je ne savais pas à quoi ça servait :-) Il va vraiment falloir que je me mette un peu aux CSS !

Par contre ca ne marche toujours pas ... j'ai même essayé de mettre le <td width =" 100%"> pour chaque cellule (pour le premier tableau). Très bizarre tout ça ...

En tout cas merci d'essayer de m'aider ...
0
jonas001 Messages postés 83 Date d'inscription vendredi 12 mars 2004 Statut Membre Dernière intervention 31 mars 2017 9
27 janv. 2008 à 16:34
Je reviens en fait sur ce que j'ai dit :-(

Ca marche parfaitement avec firefox mais pas avec IE7 ... et en plus avec IE j'ai un script en javascript qui ne s'effectue plus correctement ... bon, je vais regarder cette histoire de doctype plus tard (les erreurs avec IE7 viennent de là) et je posterais un nouveau message si besoin.
0
Peut-être que j'arrive trop tard.. mais pour les autres qui passeront par là avec le même problème...

Il suffit tout simplement de mettre   entre les balises <td> et </td>

echo '<td> </td>';

=> Affiche bien une cellule vide avec un cadre
0