Php/mysql, <table> et cellules vides
jonas001
Messages postés
83
Date d'inscription
Statut
Membre
Dernière intervention
-
aaa -
aaa -
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
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:
- Php/mysql, <table> et cellules vides
- Table ascii - Guide
- Table des matières word - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Verrouiller cellules excel - Guide
- Easy php - Télécharger - Divers Web & Internet
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
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
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
--
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œ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œ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œ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œ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œnig</td> </tr> <tr class="tr2"> <td>Céline</td> <td></td> </tr> </tbody> </table> <br /> </body> </html>
--
'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.
--
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.
--
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 !
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 !
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
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
Désolé, je n'avais pas testé avec Ff.
J'ai ajouté
Teste.
--
J'ai ajouté
td { width : 100%; }et ça semble lui convenir.
Teste.
--
Hélas non, ça ne marche toujours pas pour ces fichues cellules avec une variable vide ...
GRRRRRR ... :-)
GRRRRRR ... :-)
Tu définis ça
Sauf si
Ç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.
(-;
--
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 ...
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 ...
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.
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.