Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/06/2007, 11h48   #1
Invité régulier
 
Étudiant
Inscription : mars 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 60
Points : 7
Points : 7
Par défaut [SQL] Affichage résultat requête sur 5 colonnes

Bonjour, j'ai une liste que je récupère via une requete SQL. Cette liste j'aimerais l'afficher sur 5 colonnes. J'ai reussis pour 2 colonnes mais je ne vois pas comment couper le resultat de la requete en 5. j'ai beau me creuser la tête, je ne trouve pas...
voici mon code :
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<td width="50%" height="230" valign="top" bgcolor="#BDBDBD" style="padding-bottom:10px;">
<?
$req="SELECT ORG_Nomorg,ID_Organisme FROM organismes ORDER BY ORG_Nomorg";
$oConnexion->execute($req);
for($i=0;$i<$oConnexion->nbRes;$i++){
$oConnexion->moveNext();
$TempRecord = $oConnexion->get();
if($i==floor($oConnexion->nbRes/2)){?>
</td>
<td width="50%" valign="top" height="230" bgcolor="#BDBDBD" style="padding-bottom:10px;">
<?
}
?><p style="font-family: Arial, Helvetica, sans-serif;font-size: 11px;color: black;font-weight: normal;"><?=ucwords(strtolower($TempRecord['ORG_Nomorg']))?></p>
<?}?>
</td>
Voila, sa m'affiche sur deux colonnes ma liste.
Comment faire pour 5 colonnes ?
tondeuz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 11h53   #2
Invité régulier
 
Étudiant
Inscription : mars 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 60
Points : 7
Points : 7
Je n'est pas fini. Sachant que cette liste sera fréquement mise a jour, il y ora des entrées supplémentaire. Il faut donc que la taille des colonnes puisse varier, je ne peux donc pas utiliser de LIMIT pour faire mes colonnes.(si vous voyez ce qque je veux dire...)
tondeuz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 14h25   #3
Invité régulier
 
Étudiant
Inscription : mars 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 60
Points : 7
Points : 7
hmm je vois que sa inspire beaucoup de gens...
tondeuz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 14h32   #4
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451


Pour répartir les colonnes, je te conseille d'utiliser le module (%) plutôt que la division
Ce post te propose un exemple pour 2 colonnes, a priori il suffit de remplacer le 2 dans le modulo par un 5.

Bon courage !
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 14h59   #5
Invité régulier
 
Étudiant
Inscription : mars 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 60
Points : 7
Points : 7
pas vraiment non...sa marche meme pas du tout.
tondeuz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 15h12   #6
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
Citation:
Envoyé par tondeuz
pas vraiment non...sa marche meme pas du tout.

Bon, alors on va se pencher sérieusement sur la question.
Ce que tu veux faire, c'est répartir l'ensemble des résultats de ta requête sur 5 colonnes ? genre :
| res1 | res2 | res3 | res4 | res5 |
| res6 | res7 | res8 | res9 | res10 |

Ou est-ce quelque chose de différent ?
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 15h32   #7
Invité régulier
 
Étudiant
Inscription : mars 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 60
Points : 7
Points : 7
bin c'est plus du genre
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
tondeuz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 15h33   #8
Invité régulier
 
Étudiant
Inscription : mars 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 60
Points : 7
Points : 7
pour linstant j'ai :
1 | 6
2 | 7
3 | 8
4 | 9
5 | 10
| 11
| 12
| 13
| 14
| ...
tondeuz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 15h37   #9
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
dans ce cas tu crées un tableau avec 5 colonnes et une case par colonne
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 15h39   #10
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Et bien il suffit d'adapter un peu ton code pour fermer la colonne courante et en ouvrir une autre chaque fois que la ligne courante est la dernière de la colonne

Pour savoir si c'est le cas il faut calculer le nombre de lignes qu'on va mettre par colonnes:
Code :
$nblignes_par_colonnes = $nbresultats / $nbcolonnes;
Ensuite, si la ligne courante correspond à la derniere ligne de la colonne:

Code :
1
2
3
4
if($nbligne_courante % $nblignes_par_colonnes == 0)
{
// ferme colonne, ouvre nouvelle
}
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 15h52   #11
Invité régulier
 
Étudiant
Inscription : mars 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 60
Points : 7
Points : 7
hmm je vois sur le principe mais alors pour la pratique je suis un peu perdu...
jessaye...
tondeuz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 16h01   #12
Invité régulier
 
Étudiant
Inscription : mars 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 60
Points : 7
Points : 7
j'ai fait un truc comme sa :
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
$req="SELECT ORG_Nomorg,ID_Organisme FROM organismes WHERE ID_Organisme IN (SELECT DISTINCT ID_Organisme FROM projet_organisme) ORDER BY ORG_Nomorg";
         $oConnexion->execute($req);
         $nblignes_par_colonnes = $oConnexion->nbRes / 5;
                        for($i=0;$i<$oConnexion->nbRes;$i++){
                                $oConnexion->moveNext();
				$TempRecord = $oConnexion->get();
         if($oConnexion->nbRes % $nblignes_par_colonnes ==0){?>
                                </td>
				<td valign="top" height="230" bgcolor="#BDBDBD" style="padding-bottom:10px;">
                                <?
                                }
                                ?>
                                <p style="font-family: Arial, Helvetica, sans-serif;font-size: 11px;color: black;font-weight: normal;"><?=ucwords(strtolower($TempRecord['ORG_Nomorg']))?></p>
                                <?
                                }
                                ?>
Bien sur sa ne marche pas mais suis-je sur la bonne voi ?
tondeuz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 16h07   #13
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Oui c'est la bonne voie, hormis qu'il faut remplacer ca :
Code :
if($oConnexion->nbRes % $nblignes_par_colonnes ==0){?>
par
Code :
if($i % $nblignes_par_colonnes ==0){?>
puisque tu veux savoir si la ligne courante (i-eme ligne) est la dernière de la colonne.
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 16h09   #14
Invité régulier
 
Étudiant
Inscription : mars 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 60
Points : 7
Points : 7
coul sa marche, il me reste juste a l'afficher la ou je veux car la il ouvre des colonnes hors de mon tableau...pourquoi ?
tondeuz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 16h14   #15
Invité régulier
 
Étudiant
Inscription : mars 2007
Messages : 60
Détails du profil
Informations personnelles :
Âge : 24

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2007
Messages : 60
Points : 7
Points : 7
c bon je vais trouver pour sa. merci pour l'aide les gens !
tondeuz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h52.


 
 
 
 
Partenaires

Hébergement Web