Afficher un tableau de gauche à roite [Résolu]

Signaler
Messages postés
186
Date d'inscription
jeudi 23 décembre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
-
Messages postés
186
Date d'inscription
jeudi 23 décembre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
-
Bonjour,


voilà, j'ai une requette qui affiche ses resultats dans un tableau, de gauche à droite
avec une limite de 14 (=2semaines, champs 1 = une date), apres page / page


champs1 / champs2 / champs3 /champs4
champs1 / champs2 / champs3 /champs4
champs1 / champs2 / champs3 /champs4 etc.....x14

ce que je voudrais c'est affiché de gauche à droite toujours en limite 14

champs1 / champs1 / champs1 / champs1......x14
champs2 / champs2/ champs2 / champs2.....x14
champs3 / champs3 / champs3 / champs3......x14
champs4 / champs4 / champs4 / champs4......x14
et concerver la possibilité du page/page.....pour faire defiler
est ce possible ?

je vous mets mon bout de code :

if($total) {
echo ''.\"\n\";
// J'ai mis des celulles titre de gauche à droite sachant que je les veux de haut en bas calées à gauche du tableau
echo '----
';
echo 'Date, ';
echo ''; echo "$type1"; echo ', ';
if($type2!=\"\"){echo ''; echo "$type2"; echo ', ';}
if($type3!=\"\"){echo ''; echo "$type3"; echo ', ';}
if($type4!=\"\"){echo ''; echo "$type4"; echo ', ';}
if($type5!=\"\"){echo ''; echo "$type5"; echo ', ';}

echo ''.\"\n\";
// les resultats que je veux de gauche à droite, face à mes tritres de colonnes
while($row = mysql_fetch_array($result)) {
echo '----
';
echo ''.$row['date'].', ';
echo ''.$row['dispo1'].', ';
if($type2!=\"\"){echo ''.$row['dispo2'].', ';}
if($type3!=\"\"){echo ''.$row['dispo3'].', ';}
if($type4!=\"\"){echo ''.$row['dispo4'].', ';}
if($type5!=\"\"){echo ''.$row['dispo5'].', ';}

echo ''.\"\n\";
}
echo '
'."\n";
}
else echo 'Pas d\'enregistrements dans cette table...';
mysql_free_result($result);

Merci
Laubro

9 réponses

Messages postés
88
Date d'inscription
dimanche 19 octobre 2003
Statut
Membre
Dernière intervention
24 janvier 2006

Bon je vien de faire quelques test et ca fonctionne parfaitement,
n(oublie pas de corriger en rajoutant la parenthése la ou je l'ai
oublié et fait gaffe de pas t'etre mélanger entre les i et les j.

je te le remet avec des nom plus lisible. fait un copier coller.



$nb_ligne = 0;
while ($row = mysql_fetch_assoc ($result))
{
$tab_result [] = array ($row['date'], $row['dispo1'], $row['dispo2'],



$row['dispo3'], $row['dispo4'], $row['dispo5']);
++$nb_ligne;
}
echo "\";
for ($i = 0 ; $i < count($tab_result[0]) ; $i++)
{
echo \"----
\";
for ($k = 0 ; $k < $nb_ligne ; $k++)
echo \"{$tab_result[$k][$i]}, \";
echo \"\";
}
echo "
";



Voila j'ai rajouté la parenthése et remplacé les j par des k c'est plus
lisible parce que avec cette police les i et les j sont assez
semblables. Donc chez moi ca marche parfaitement si ca fait pas dis le
moi.
Messages postés
88
Date d'inscription
dimanche 19 octobre 2003
Statut
Membre
Dernière intervention
24 janvier 2006

salut,

si tu souhaite afficher seulement 14 lignes de résultat je te conseille
de le faire avec limit sous mysql qui prend comme paramétre le numéro
de la premiére ligne et le nombre de résultat.

Sinon faudrait que tu reprenne un peu ton code car a plusieurs reprise tu fais deux echo d'affiler sur la meme ligne.

par exemple:

echo "<td
bgcolor="#669999">$type1</td>";
c'est un peu plus lisible meme si tu dois mettre un \ devant tous les
guillemets.

Bonne continuation
Messages postés
186
Date d'inscription
jeudi 23 décembre 2004
Statut
Membre
Dernière intervention
9 juillet 2013

Pour le limite, ça va il est avant dans mon code et ça tourne, ce n'est que le tableau que j'ai mis, car mon soucis c'est juste de l'afficher de gauche à droite et non de bas en faut
pour le echo, je sais bien, mais je debute, alors je tape........

Laubro
Messages postés
88
Date d'inscription
dimanche 19 octobre 2003
Statut
Membre
Dernière intervention
24 janvier 2006

A mon avis la seule solution est de stocker dans ton while tous les
résultat de ta requéte dans un tableau puis aprés de faire une boucle
ou tu affiche ton tableau.

$nb_ligne = 0;

while ($row = mysql_fetch_assoc ($result)

{

$tab_result [] = array ($row['date'], $row['dispo1'] ......, $row['dispo5']);

++$nb_ligne;

}

echo "\";

for ($i=0; $i<count($tab_result[0]); $i++)

{

echo \"----
\";

for ($j=0; $j < $nb_ligne; $j++)

echo \"{$tab_result[$j][$i]}, \";

echo \"\";

}

echo "
";



Voila essaie ca, c'est ca l'idée j'ai fait ca vite fait j'ai pas eu le temps de vérifier, si ca marche pas dis le.

bonne continuation
Messages postés
186
Date d'inscription
jeudi 23 décembre 2004
Statut
Membre
Dernière intervention
9 juillet 2013

Pour commencer merci,

mais là en fait (apres avoir compléter ton code, manque juste un ')' a la fin de $tab_result [] = array ($row['date'], $row['dispo1'] ......, $row['dispo5']);,

cela affiche toutes les réponses les unes en dessous des autre sur une seule colonne
c'est pas vraiment ça que je voulais, c'est avoir mes resultat de gauaches à droite
ex :
champs1 / champs1 / champs1 / champs1......
champs2 / champs2/ champs2 / champs2.....
champs3 / champs3 / champs3 / champs3......
champs4 / champs4 / champs4 / champs4......
et non
champs1 / champs2 / champs3 /champs4
champs1 / champs2 / champs3 /champs4
champs1 / champs2 / champs3 /champs4 etc

comme ça le fait par defaut, pas evident mon truc, ce qui m'enerve c'est que dans mysql on a le choix de l'affichage haut/bas ou gauche droite, c'est ce principe la que je voudrais

merci de ton aide

Laubro
Messages postés
186
Date d'inscription
jeudi 23 décembre 2004
Statut
Membre
Dernière intervention
9 juillet 2013

En fait on affiche les resultats comme dans la base :horizontalement :
je voudrais afficher mon tableau : verticalement (comme mysql le propose dans l'interface d'administration

merci

Laubro
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Hello,



vince t'a donne une approche interessante.

Tu stockes tout dans un tableau associatif : $tableau['champx']

ce qui te permet ensuite d'afficher chaque tableau de ton tableau comme tu le souhaites :

tu parcours chaque $tableau['champx'] pour les mettre entre des
<td>, puis tu fermes ton <tr>, rouvres, et recommence.

Sans utiliser de tableau associatif c'est possible : 0 correspondra a champ0, x a champx.
Messages postés
88
Date d'inscription
dimanche 19 octobre 2003
Statut
Membre
Dernière intervention
24 janvier 2006

mais là en fait (apres avoir compléter ton code, manque juste un ')' a la fin de $tab_result [] = array ($row['date'], $row['dispo1'] ......, $row['dispo5']);,



euh en fait c'est pas la k'il manque mais dans la ligne du while je l'ai pas fermé (oh bravo !!)



while ($row = mysql_fetch_assoc ($result)) <= ici



mais sinon le resultat que tu me donne n'est pas normal j'ai du me planter qqpart

je vai essayer ca vite fait juste le temps de relancer le serveur ;)
Messages postés
186
Date d'inscription
jeudi 23 décembre 2004
Statut
Membre
Dernière intervention
9 juillet 2013

Je n'ai que 3 mots à dire "Trop Fort Merci" vince

de le voir devant mes yeux, j'y crois même pas......j'aurai jamis fait ça tout seul
merci aussi à malalam

Laubro