Tableau dynamique ?!? Problèmeu :(

Signaler
Messages postés
21
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
9 juin 2004
-
Messages postés
21
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
9 juin 2004
-
Voilà mon problème je souhaiterais afficher mon tableau sous forme de 2 colonne la 1ère colonne avec le nom des champs et la deuxième avec un résultat cohérent. Mais manque de bol quand j'exécute mon code j'obtient bien les 2 colonnes souhaitées avec les bon renseignement, par contre elles sont une au-dessus de l'autre.

c-à-d à la place d'avoir :

1ère colonne | 2ème colonne
nom | TOTO
prénom | Tutu
... | ...

j'obtient ceci : 1ère colonne
nom
prénom
...
2ème colonne
TOTO
Tutu
...

Voici le code en question :

<code>
<html>
<head>
<title></title>
</head>

<?php
function creertabver($result)
{
?>
<? // crée l'en-tête du tableau avec les noms des champs de la requête
include(\"date.php\");

for ($i = 0 ; $i < mysql_num_rows($result); $i++)
{
for ($i=0; $i < mysql_num_fields($result); $i++)
{
echo (\"----
" . mysql_field_name($result, $i) ." |\");
}
echo (\"----
\");

$tbl_colonne = mysql_fetch_array ($result, MYSQL_BOTH);

for ($j=0; $j < mysql_num_fields($result); $j++)
{
echo (\"----
" . $tbl_colonne[$j] ."
<?
}
?>

</html>

Merci d'avance à tous ceux qui vont bosser à résoudre ce problème ;)

5 réponses

Messages postés
24
Date d'inscription
vendredi 10 octobre 2003
Statut
Membre
Dernière intervention
29 avril 2004

alors deja un truc bizare :


for ($i = 0 ; $i < mysql_num_rows($result); $i++)
{
for ($i=0; $i < mysql_num_fields($result); $i++)
{
echo ("<TR><TH bgcolor=#cccccc align=left>" . 	mysql_field_name($result, $i) ."</TH></TR>");
}
//......
}


C'est le même indice $i je pense qu'il aime pas trop :/

De plus tu dois avoir une boucle en trop :(

Donc je propose ca mais je n'assure rien de sa validité :

<code><?php
function creertabver($result)
{
?>
<? // crée l'en-tête du tableau avec les noms des champs de la requête
include(\"date.php\");

$tbl_colonne = mysql_fetch_array ($result, MYSQL_BOTH);
for ($i = 0 ; $i < mysql_num_rows($result); $i++)
{
echo (\"----
" . mysql_field_name($result, $i) ."
<?
}
?>

Tiens moi au courrant
Messages postés
24
Date d'inscription
vendredi 10 octobre 2003
Statut
Membre
Dernière intervention
29 avril 2004

alors deja un truc bizare :


for ($i = 0 ; $i < mysql_num_rows($result); $i++)
{
for ($i=0; $i < mysql_num_fields($result); $i++)
{
echo ("<TR><TH bgcolor=#cccccc align=left>" . 	mysql_field_name($result, $i) ."</TH></TR>");
}
//......
}


C'est le même indice $i je pense qu'il aime pas trop :/

De plus tu dois avoir une boucle en trop :(

Donc je propose ca mais je n'assure rien de sa validité :

<code><?php
function creertabver($result)
{
?>
<? // crée l'en-tête du tableau avec les noms des champs de la requête
include(\"date.php\");

$tbl_colonne = mysql_fetch_array ($result, MYSQL_BOTH);
for ($i = 0 ; $i < mysql_num_rows($result); $i++)
{
echo (\"----
" . mysql_field_name($result, $i) ."
<?
}
?>

Tiens moi au courrant
Messages postés
24
Date d'inscription
vendredi 10 octobre 2003
Statut
Membre
Dernière intervention
29 avril 2004

hum dsl le forum lag, le code a prendre est le dernier pas le premier, juste un petit probléme de <tr></tr>
Messages postés
21
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
9 juin 2004

Voilà j'ai réussi à m'en sortir en fait. Ya le problème du "<tr>" "</tr>" et un problème au niveau de la deuxième boucle "for" avec "$j" comme variable de test (cf "le code en question" du 1er message), c'est pas vraiment un problème c'est juste qu'elle est mal placée. Merci pour l'aide Delwyn, le code que tu as modifié fonctionne presque mais il ne m'affiche pas un de mes champs (et oui je l'ai quand même testé pour voir ;) ). Pour afficher le tout il faut les 2 boucles "for" comme ci-dessous (ça n'a pas l'air de déranger d'avoir la même variable de test dans 2 boucles "for" différentes).

Code correct :

<code>
<html>
<head>
<title></title>
</head>

<?php
function creertabver($result)
{
?>
<? // crée l'en-tête du tableau avec les noms des champs de la requête
include(\"date.php\");

$tbl_colonne = mysql_fetch_array ($result, MYSQL_BOTH);

for ($i = 0 ; $i < mysql_num_rows($result); $i++)
{
for ($i=0; $i < mysql_num_fields($result); $i++)
{
echo (\"----
" . mysql_field_name($result, $i) ." |\");

echo (\"" . $tbl_colonne[$i] ."
<?
}
?>

</html>

Bonus code!!! :big)

Créé un tableau mais sous forme de ligne :

nom | prénom | ...
Toto | Tutu | ...

<code>
<html>

<head>
<title></title>
</head>

<?php
function creertabhor($result)
{
?>
<? // crée l'en-tête du tableau avec les noms des champs de la requête
for ($i =0; $i < mysql_num_fields($result); $i++)
{
echo (\"" . mysql_field_name($result, $i) . " |\");
}
?>

<? // crée les lignes du tableau
for ($i = 0 ; $i < mysql_num_rows($result); $i++)
{
echo (\"----
\");
$tbl_ligne = mysql_fetch_array ($result, MYSQL_BOTH);
for ($j=0; $j < mysql_num_fields($result); $j++)
{
echo (\"" . $tbl_ligne[$j] . "
<?
}
?>

</html>
Messages postés
21
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
9 juin 2004

Juste pour préciser le premier code ne me sert uniquement à afficher 1 enregistrement. Tandis que le deuxième permet d'afficher tous les enregistrement d'une bdd. Voilà :)
Merci encore d'avoir jeté un oeil sur mon code Delwyn ;)