Résultat d'une boucle WHILE sur X colone

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Résultat d'une boucle WHILE sur X colone

par Truc » 30 mars 2006, 21:48

Je suis désolé mais un tableau reste un tableau impossible que les cellules soient en décalage de ligne en ligne :-s

Si tu as ce code source dans la page alors tu devrais avoir un truc aligné correctement :-k

Re: Résultat d'une boucle WHILE sur X colone

par rforce1 » 30 mars 2006, 14:28

Donc le modulo est déja dans ce code.... modulo = %

La petite recherche donne donc cela sans passer par un tableau intermédiaire directement depuis la boucle de résultat de la requête.

maintenant je ne comprend pas trop ce décalage sous forme de tableau il ne devrait pas en avoir.
j'ai bien testé

copie de mon code (créer pour l'occasion au plus simple pour le test):
<?php
$query_r = "SELECT intitule, type FROM categorie ORDER BY intitule ASC";
$r = mysql_query($query_r, $parc_info2006) or die(mysql_error());

$nbcolone="6"; // nombre de colone

echo "<TABLE><tr>"; 
$i = 0; 
while( $ligne = mysql_fetch_array( $r )) 
   { 
if (($i!=0)&&($i % $nbcolone ==0)) {
    echo "</tr><tr>";} 
    echo "<td>" . $ligne['intitule'] . "</td> 

        "; $i++; 
   } 
echo "</TABLE>"; 

mysql_free_result($r);
?>


ce qui me donne comme code HTML :

Code : Tout sélectionner

<TABLE><tr><td>Bit Defender</td> <td>Cristal Report</td> <td>EDI</td> <td>Excel</td> <td>Exchange</td> <td>France Télécom</td> </tr><tr><td>Geode</td> <td>Harry Builder</td> <td>Harry Net Serveur</td> <td>Harry Pilot</td> <td>Imprimante</td> <td>Installation PC</td> </tr><tr><td>Magneta</td> <td>Microsoft SUS</td> <td>Oleane</td> <td>Onduleur</td> <td>Oracle</td> <td>Outlook</td> </tr><tr><td>PDF writter</td> <td>PHP</td> <td>Reseau</td> <td>Sage</td> <td>System</td> <td>TSE</td> </tr><tr><td>VPN</td> <td>Windows 2000</td> <td>Windows XP</td> <td>Word</td> <td>X3</td> <td>X3 Report</td> </TABLE>
ce qui donne a l'affichage :
Access Bit Defender Cristal Report EDI
Excel Exchange France Télécom Geode
Harry Builder Harry Net Serveur Harry Pilot Imprimante
Installation PC Magneta Microsoft SUS Oleane
Onduleur Oracle Outlook PDF writter
PHP Reseau Sage System
TSE VPN Windows 2000 Windows XP
Word X3 X3 Report
j'ai bien mes 6 colones, pas de probleme de ce coté la, mais le probleme est dans l'affichage :cry:

le resultat donne :

1 - 2 - 3 -4 - 5 - 6
7 - 8 - 9 - 10 - 11 - 12
13 - 14 - 15 - 16 - 17 - 18

alors que je le veux comme ça :

1 - 4 - 7 - 10 - 13 - 16
2 - 5 - 8 - 11 - 14 - 17
3 - 6 - 9 - 12 - 15 - 18

:?

le probleme reste entier :lol:

Re: Résultat d'une boucle WHILE sur X colone

par Truc » 30 mars 2006, 11:43

Donc le modulo est déja dans ce code.... modulo = %

La petite recherche donne donc cela sans passer par un tableau intermédiaire directement depuis la boucle de résultat de la requête.

maintenant je ne comprend pas trop ce décalage sous forme de tableau il ne devrait pas en avoir.

Re: Résultat d'une boucle WHILE sur X colone

par rforce1 » 30 mars 2006, 11:12

Salut,
et surtout pas comme cela :(ce que j'ai trouvé sur le Forum d'ailleurs :wink: )
1 | 2 | 3
4 | 5 | 6
7 | 8 | 9
9 | 10 | 12
Et si on partait de l'existant c'est toujours plus simple avec un code de base
:wink:

sinon il s'agit d'une pagination ou présentation sous forme de tableau ?

Dans le 2ème cas une recherche avec le mot clé "modulo" donnera des résultats exploitables :wink:

alors exemple de code :
<?php
//--- une requête
$req = 'select champ1,champ2 from table where truc="2" order by champ1 Asc'; 

//--- Résultat
$res = mysql_query($req);  
while($data = mysql_fetch_array($res))  {
        // on stocke nos données
        $tablo[]=$data;
}  
$nbcol=3; //--- détermine le nombre de colonnes de l'affichage

echo '<table>';  
for($i=0;$i<count($tablo);$i++){ 

        if($i%$nbcol==0)  
        echo '<tr>';  
        echo '<td>'.$tablo[$i]['champ1'].'</td><td>'.$tablo[$i]['champ2'].'</td>';  

        if($i%$nbcol==($nbcol-1) or $i==(count($tablo)-1))
        echo '</tr>';  
}  
echo '</table>'; 
?>
bref, la j'suis sous la forme :

1 | 2 | 3
4 | 5 | 6
.....


et pour répondre à ta question, c'est pour une présentation sous forme de tableau :wink:


merci de m'aider :P

Re: Résultat d'une boucle WHILE sur X colone

par Truc » 30 mars 2006, 11:02

Salut,
et surtout pas comme cela :(ce que j'ai trouvé sur le Forum d'ailleurs :wink: )
1 | 2 | 3
4 | 5 | 6
7 | 8 | 9
9 | 10 | 12
Et si on partait de l'existant c'est toujours plus simple avec un code de base
:wink:

sinon il s'agit d'une pagination ou présentation sous forme de tableau ?

Dans le 2ème cas une recherche avec le mot clé "modulo" donnera des résultats exploitables :wink:

Résultat d'une boucle WHILE sur X colone

par rforce1 » 30 mars 2006, 10:56

Bonjour à tous

Voila, j'ai été voir un peu partout sur ce forum, j'ai utilisé la fonction recherche , et j'ai rien trouvé de précis sur ce que je veux faire (possible que j'ai mal chercher)

Bref, mon petit probleme :
j'ai une requete SQL, une boucle WHILE, et la, je voudrai pouvoir afficher les donnés sur plusieurs colone suivant le nombre de réponse .

mais forcement, le truc compliqué (à mon niveau bien sur), s'est que je veux afficher le résultat sous la forme :

1 | 5 | 9
2 | 6 | 10
3 | 7 | 11
4 | 8 | 12


et surtout pas comme cela :(ce que j'ai trouvé sur le Forum d'ailleurs :wink: )
1 | 2 | 3
4 | 5 | 6
7 | 8 | 9
9 | 10 | 12


c'est peut etre simple à faire (ce que j'espere d'ailleurs), mais j'y arrive pas



Merci de bien vouloir m'aider