Afficher un tableau de gauche à roite

Résolu
laubro Messages postés 186 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 9 juillet 2013 - 27 mai 2005 à 10:54
laubro Messages postés 186 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 9 juillet 2013 - 28 mai 2005 à 14:11
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

vince1415 Messages postés 88 Date d'inscription dimanche 19 octobre 2003 Statut Membre Dernière intervention 24 janvier 2006
28 mai 2005 à 13:26
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.
3
vince1415 Messages postés 88 Date d'inscription dimanche 19 octobre 2003 Statut Membre Dernière intervention 24 janvier 2006
27 mai 2005 à 11:22
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
0
laubro Messages postés 186 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 9 juillet 2013
27 mai 2005 à 11:42
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
0
vince1415 Messages postés 88 Date d'inscription dimanche 19 octobre 2003 Statut Membre Dernière intervention 24 janvier 2006
27 mai 2005 à 23:58
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
laubro Messages postés 186 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 9 juillet 2013
28 mai 2005 à 11:03
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
0
laubro Messages postés 186 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 9 juillet 2013
28 mai 2005 à 11:09
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
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
28 mai 2005 à 11:20
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.
0
vince1415 Messages postés 88 Date d'inscription dimanche 19 octobre 2003 Statut Membre Dernière intervention 24 janvier 2006
28 mai 2005 à 13:07
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 ;)
0
laubro Messages postés 186 Date d'inscription jeudi 23 décembre 2004 Statut Membre Dernière intervention 9 juillet 2013
28 mai 2005 à 14:11
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
0
Rejoignez-nous