Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/08/2011, 09h36   #1
Invité de passage
 
Inscription : mars 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 3
Points : 0
Points : 0
Par défaut Problème avec un tableau HTML dans un While

Bonjour à tous et merci d'avance pour vos réponses.

Je procède à un developement avec affichage d'un tableau HTML dans du PHP à travers des echo et un while.

On dirait que le while fait tout d'abord un tour à vide ce qui provoque l'affihage décalé du tableau. Une image et du code vaudra mieu qu'un long discours. =)


Voici les images du site avec le problème :

http://hpics.li/0354268
http://hpics.li/3bf1216


Et voici le code :


Code php :
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
	//récupération des données
	$req = mysql_query("SELECT code,chemin,maj from code ORDER BY code") or die ("erreur sql");
 
	//Affichage de la liste des enregistrements de la BD.
	echo "test";
		echo "<table border='1' width='500px' height='50px'>";
		echo "<TR><TD><center> <b>ID</b> </center></TD><TD><center><b>CHEMIN</b></center></TD><TD><center><b>MISE A JOUR</b></center></TD></TR>";
	echo "test1";
	while ($resultat = mysql_fetch_array($req))
	{
		echo "<TR><TD>";
		echo $resultat['code'];
		echo "</TD>";
		echo "&nbsp &nbsp &nbsp &nbsp";
		echo "<TD>";
		echo $resultat['chemin'];
		echo "</TD><TD>";
		echo $resultat['maj'];
		echo "</TD></TR>";
 
		echo "<br>";
 
	}
		echo "</table>";
 
 
?>
Manutchelo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 10h46   #2
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 774
Points : 4 774
Bonjour,
observes le code HTML généré par le PHP et tu te rendras compte que tu n'as que ce que tu demandes, une table mal formée avec des données entre 2 types de balise qui seront dans le meilleur des cas "repoussés" hors de la table.

nota : mets les balises en MAJUSCULE(non) ou en minuscule(oui) mais pas un mélange.
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 11h38   #3
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Bonjour,
les conseils habituels :
- code "propre" (indentation),
- balises html en minuscule,
- sortir le code html du code php,
- de préférence ' en php, et " en html,
- ...
+ poster dans le bon forum ...

Je t'encourage à LIRE ceci : Les tableaux (XHTML & CSS)
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 12h04   #4
Invité de passage
 
Inscription : mars 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 3
Points : 0
Points : 0
Eh bien merci Messieurs, vous recevez toujours les gens comme ça sur ce forum ?

Je ne suis pas expert en developpement, ce n'est pas mon métier, et c'est justement pour ça que je venais chercher de l'aide.

Merci quand même pour le lien sur les tableaux.
Manutchelo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 22h55   #5
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 774
Points : 4 774
Citation:
Envoyé par Manutchelo Voir le message
Eh bien merci Messieurs, vous recevez toujours les gens comme ça sur ce forum ?
ne voies aucune "agressivité" dans les propos, juste des conseils ni plus ni moins.
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2011, 11h11   #6
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 656
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

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

Informations forums :
Inscription : avril 2007
Messages : 3 656
Points : 5 359
Points : 5 359
Niveau php, ça a l'air correct.
Là où ça cafouille, c'est au niveau HTML. Ce qui se passe en gros, c'est que ton navigateur va prendre
- d'une part tout ce qui relève du tableau (les <table>, <tr>, <td> et ce qui se trouve dans les <td>) et construire ton tableau avec
- d'autre part tout le reste et l'afficher en dehors du tableau. Par exemple, les &nbsp de la ligne 14 et les <br> de la ligne 21 ne sont pas à l'intérieur de <td>, ils vont donc être "expulsés" et placés avant.

Je te conseille donc de lire le tuto recommandé par Jreaux sur la bonne construction du tableau et de commencer par écrire un tableau avec des valeurs en dur si tu n'es pas sûr de ce que tu vas/veux obtenir.
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 30
Vieux 22/08/2011, 22h46   #7
Membre Expert
 
Avatar de ludojojo
 
Homme Ludovic Solczynski
Développeur .NET
Inscription : avril 2008
Messages : 1 446
Détails du profil
Informations personnelles :
Nom : Homme Ludovic Solczynski
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : avril 2008
Messages : 1 446
Points : 2 179
Points : 2 179
Citation:
Envoyé par Manutchelo Voir le message
Code php :
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
	//récupération des données
	$req = mysql_query("SELECT code,chemin,maj from code ORDER BY code") or die ("erreur sql");
 
	//Affichage de la liste des enregistrements de la BD.
	echo "test";
		echo "<table border='1' width='500px' height='50px'>";
		echo "<TR><TD><center> <b>ID</b> </center></TD><TD><center><b>CHEMIN</b></center></TD><TD><center><b>MISE A JOUR</b></center></TD></TR>";
	echo "test1";
	while ($resultat = mysql_fetch_array($req))
	{
		echo "<TR><TD>";
		echo $resultat['code'];
		echo "</TD>";
		echo "&nbsp &nbsp &nbsp &nbsp";
		echo "<TD>";
		echo $resultat['chemin'];
		echo "</TD><TD>";
		echo $resultat['maj'];
		echo "</TD></TR>";
 
		echo "<br>";
 
	}
		echo "</table>";
 
 
?>
Bonjour,

Si je peux te donner un conseil, essaye de rendre ton code le plus lisible possible. Dans ton cas tu utilises tu php pour créer un affichage html, donc essaye de rendre visible ton code html. Exemple :
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
//récupération des données
$req = mysql_query("SELECT code,chemin,maj from code ORDER BY code") or die ("erreur sql");
 
//Affichage de la liste des enregistrements de la BD.
echo "test";
echo "<table border='1' width='500px' height='50px'>";
echo "<TR>";
echo "<TD><center> <b>ID</b> </center></TD>";
echo "<TD><center><b>CHEMIN</b></center></TD>";
echo "<TD><center><b>MISE A JOUR</b></center></TD>";
echo "</TR>";
echo "test1";
while ($resultat = mysql_fetch_array($req))
{
	echo "<TR>";
	echo "<TD>" . $resultat['code'] . "</TD>";
	echo "&nbsp &nbsp &nbsp &nbsp"; //à éviter
	echo "<TD>" . $resultat['chemin'] . "</TD>";
	echo "<TD>" . $resultat['maj'] . "</TD>";
	echo "</TR>";
}
echo "</table>";
?>
Dans un premier temps tu peux essayer ton code html dans une page vierge pour tester que ton code est bon et correspond bien à ce que tu cherches à faire.
Par la même occasion, dans ton code php je rajouterais un petit test pour être sur que tu récupères des informations depuis ta DB...
__________________
Aide les autres...
Et les autres t'aideront....
Mon site DVP
Mon site perso

N'oubliez pas de voter pour les messages dont la réponse est pertinente
ludojojo est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h06.


 
 
 
 
Partenaires

Hébergement Web