Rechercher : dans
Par :

Php/mysql, <table> et cellules vides

Dernière réponse le 27 jui 2009 à 09:59:34 jonas001, le 26 jan 2008 à 19:31:43 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Firefox 2.0.0.11

Meilleures réponses pour « php/mysql, et cellules vides » dans :

1

Gihef, le 26 jan 2008 à 23:27:11
  • +1

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>

--

Répondre à Gihef

2

jonas001, le 27 jan 2008 à 08:55:23

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

Répondre à jonas001

3

Gihef, le 27 jan 2008 à 11:18:08

Désolé, je n'avais pas testé avec Ff.

J'ai ajouté

td { width : 100%; }
et ça semble lui convenir.

Teste.

--

Répondre à Gihef

4

jonas001, le 27 jan 2008 à 11:30:02

Hélas non, ça ne marche toujours pas pour ces fichues cellules avec une variable vide ...

GRRRRRR ... :-)

Répondre à jonas001

5

Gihef, le 27 jan 2008 à 11:46: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.

(-;

--

Répondre à Gihef

6

jonas001, le 27 jan 2008 à 12:01:24

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 ...

Répondre à jonas001

7

Gihef, le 27 jan 2008 à 13:02:01
  • +1

'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.

--

Répondre à Gihef

8

jonas001, le 27 jan 2008 à 15:19:02

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 !

Répondre à jonas001

9

jonas001, le 27 jan 2008 à 16:34:52

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.

Répondre à jonas001

10

sam, le 8 aoû 2008 à 21:22:20

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

Répondre à sam

11

sam, le 8 aoû 2008 à 21:23:55

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

Répondre à sam

12

 aaa, le 27 jui 2009 à 09:59:34

CSS :

empty-cells: show

Répondre à aaa
Collection CommentÇaMarche.net