Page 1 sur 2
Affichage dans deux colonnes selon un critère
Posté : 18 mai 2005, 09:46
par wiwi
Bonjour à tous,
Voilà mon problème :
J'ai une base de données me permettant de stocker des évènements selon deux catégories ("réunion interne" et "réunion externe")
Quand je parcours la table, je souhaiterais qu'il me fasse la mise en forme sur "deux colonnes" ou quelque chose d'équivalent (genre division ?) avec "à gauche" les réunions internes et "à droite" les réunions externes.
Si vous aviez quelques pistes à m'indiquer
Merci d'avance
Posté : 18 mai 2005, 09:51
par zeus
Il faut que tu fasse 2 requetes sur ta bdd et que quand tu construit ta page html tu affiche une ligne d'une requete dans une case, une ligne de l'autre requete dans la case à coté, un saut de ligne et tu recommence
Posté : 18 mai 2005, 09:53
par Cyrano
Tu as ces éléments dans une seule et même table ? Quelle est la structure de cette table. À priori, tu peux faire ça en une requête en aliasant le nom de table comme si tu cherchais dans deux tables différentes. Une requête qui ressemblerait à quelque chose comme ceci:
Code : Tout sélectionner
SELECT t1.evenement as interne, t2.evenement as externe
FROM table as t1, table as t2
WHERE interne = 'interne'
AND externe = 'externe'
Je suis pas certain de mon coup, mais ça doit ressembler à peu près à ça
Posté : 18 mai 2005, 09:59
par zeus
SI ca marche, ça peut être assez puissant !!!
A voir
Posté : 18 mai 2005, 10:04
par pjl
Une et une seule requête suffit largement et il faut qu'elle ramène l'élèment permettant de savoir si l'évènement est extérieur ou intérieur.
Pour l'affichage, il suffit de le faire avec une condition.
Code : Tout sélectionner
Si (interieur OK) affiche (intérieur)
sinon affiche (extérieur)
Posté : 18 mai 2005, 10:07
par zeus
Ca veut dire qu'il va avoir des sauts de lignes !!!
Imagine que dans sa base il a deux externes qui se suivent, il va avoir un truc comme ca :
Posté : 18 mai 2005, 10:18
par pjl
affichage (intérieur) :
affichage (extérieur) :
Posté : 18 mai 2005, 10:34
par zeus
C'est pas du tout ce que j'avais compris !!!
Je pensais qu'il voulait
Code : Tout sélectionner
interne | externe
interne | externe
interne | externe
interne | externe
Mais si c'est pour ça,
Code : Tout sélectionner
interne |
interne |
| externe
| externe
interne |
| externe
interne |
| externe
Posté : 18 mai 2005, 10:48
par wiwi
C'est pas du tout ce que j'avais compris !!! Embarassed
Je pensais qu'il voulait
Code:
interne | externe
interne | externe
interne | externe
interne | externe
Oui c'est ceci que je veux
Tu as ces éléments dans une seule et même table ?
Oui. J'ai juste un intitulé qui se balade dans une autre table mais ce n'est pas un problème/
Posté : 18 mai 2005, 10:50
par zeus
Tu as ces éléments dans une seule et même table ? Quelle est la structure de cette table. À priori, tu peux faire ça en une requête en aliasant le nom de table comme si tu cherchais dans deux tables différentes. Une requête qui ressemblerait à quelque chose comme ceci:
Code : Tout sélectionner
SELECT t1.evenement as interne, t2.evenement as externe
FROM table as t1, table as t2
WHERE interne = 'interne'
AND externe = 'externe'
Je suis pas certain de mon coup, mais ça doit ressembler à peu près à ça
Essaye de te renseigner sur ça !!!
Sinon essaye ce que je t'ai dit au début !!!
Posté : 18 mai 2005, 10:55
par Cyrano
Il manque peut-être un critère : la date de l'évènement qui fera que de toutes façon tu n'auras pas les évènements internes et externes sur les mêmes lignes... Actuellement, j'ai cru comprendre que ça ne rentrait pas en ligne de compte. Pour obtenir les évennement sans trous dans les colonnes, ça va être plus difficile avec une seule requête. Il va falloir faire une bidouille avec deux requêtes et ensuite des tableau indexés, des pointeurs et une génération de ton affichage qui, selon la colonne, prend un élément dans le tableau d'évènement internes ou dans l'autre.
Posté : 18 mai 2005, 11:24
par wiwi
En fait ce n'est pas tant l'accès aux données qui me pose problème c'est la façon de faire la mise en page. En effet, si je demande de me balancer tous mes évènements "à la suite", ça ne pose pas de problèmes

Posté : 18 mai 2005, 11:35
par Cyrano
L'idée que je soulevais, c'est de récupérer tes évènements dans deux tableaus indexés, un pour l'interne, l'autre pour externe.
Lors de la génération de ton tableau HTML, tu utilises le premier pour compléter la première colonne tant que le tableau n'est pas vide, sinon, tu inscris un espace insécable ( ) et tu fais la même chose pour l'autre colonne avec l'autre tableau. La génération des lignes du tableau html sera limité par le plus grand nombre du tableau indexé externe ou interne.
Posté : 18 mai 2005, 11:52
par iclo
Tu les récuperes en les triant pour par exemple tout les internes puis les externes.
Et utiliser pour l'affichage deux tabeaux html interne dans la structure de ta page. l'avantage, un tableau pour la colonne de gauche et un autre pour la colonne de droite. tu remplis celui de gauche avant de remplir celui de droite...
Mais il faut être certains de ne pas avoir des modifications par la suite au niveaux d'un classement par date, par exemple une ligne pour les trucs d'un certaines jours, etc
Posté : 18 mai 2005, 12:58
par wiwi
Je vois bien ce que vous voulez dire en théorie. J'avais un peu la même idée. Par contre, débutant en php et en programmation, j'ai un peu de mal à passer du théorique au pratique.
Je regarde de mon côté et vous tient au courant.
