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

Langage PHP Discussion :

Problème avec un tableau HTML dans un While


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 3
    Points : 2
    Points
    2
    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 : 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
    	//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>";
     
     
    ?>

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 075
    Points : 44 656
    Points
    44 656
    Par défaut
    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.

  3. #3
    Invité
    Invité(e)
    Par défaut
    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)

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    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.

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 075
    Points : 44 656
    Points
    44 656
    Par défaut
    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.

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

  7. #7
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Manutchelo Voir le message
    Code php : 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
    	//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 : 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
     
    //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...

Discussions similaires

  1. Problème avec position d'image dans un while()
    Par damigr dans le forum Langage
    Réponses: 1
    Dernier message: 08/04/2008, 00h46
  2. [HTML] Problème avec un tableau et un formulaire
    Par Brom08 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 05/02/2008, 21h27
  3. [HTML]Problème avec la touche "entrée" dans un formulaire
    Par WerKa dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 12/06/2007, 20h34
  4. Réponses: 7
    Dernier message: 24/11/2006, 09h56
  5. problème avec un tableau dans un insert ...
    Par vbcasimir dans le forum Langage
    Réponses: 3
    Dernier message: 02/11/2005, 14h31

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