menu avec boucle - PHP - Programmation
Marsh Posté le 31-01-2006 à 10:57:55
tu choisis dabord toutes tes catégories de ta table categorie que tu ordonnes sur le libellé, et ensuite dans la boucle tu dois refaire une requete ou tu choisis les documents de cette catégorie.
Tu peux aussi le faire en 1 seul boucle avec des jointures en y réfléchissant un minimum
Marsh Posté le 31-01-2006 à 10:59:58
Je ne vois pas trop où est le problème ...
Tu fais une requete(avec une jointure entre tes deux tables) qui te remonte tous les enregistrements.
Ensuite tu parcours tous les resultats et tu affiches au fur et à mesure.
edit: mais perso je ne recommande pas de faire la solution avec les requetes dans la boucle
Marsh Posté le 31-01-2006 à 11:01:40
juste pour afficher les différentes catégories , que tu ne dois afficher qu'une fois.
c pour ca que j'ai mis "un minimum"
Marsh Posté le 31-01-2006 à 11:05:12
ça donnerai quoi dans le code car j'ai essayé pas mal de chose avant de posté ce message ...
Marsh Posté le 31-01-2006 à 11:10:14
Code :
|
heu... en même temps tu ne précise pas grand chose, (si tu t'y connais, ou pas, comment sont contenues ces informations...) donc si cela te convient...
Marsh Posté le 31-01-2006 à 11:19:03
a quoi correspondent $categorie, $document?
où est-ce que je fais ma requete? et quelle requete?
Marsh Posté le 31-01-2006 à 11:21:33
donc on est en mode 'je veux'
un point : tu sais ce que tu veux
les problèmes :
- en php ?
- depuis une base de données ?
- tu sais construire une requête sql ?
- tu sais accéder au résultat de ta requête ?
Marsh Posté le 31-01-2006 à 11:23:45
Selon Les regles du forum
Citation : [0C] On ne fait pas le boulot à votre place. |
Alors montre nous ou tu en es dans ton code et on se fera un plaisir de t'aider. Mais personne ne va te faire ton truc en entier!
Marsh Posté le 31-01-2006 à 11:33:29
Voilà où j'en suis : pb en visualisation chaque doc est répété dans chaque catégories. il ne tri pas les doc par catégorie
$sql = " SELECT cat_cle, cat_lib FROM categorie WHERE cat_cle < 8 ORDER BY cat_lib DESC ";
$qry = pg_query ($conn, $sql);
while ($result = pg_fetch_assoc($qry))
{
echo $result['cat_lib'] . "<br>";
$sql2 = " SELECT doc_cle, doc_lib, doc_file, doc_type, doc_cat, cat_cle FROM documents INNER JOIN categorie ON cat_cle=doc_cat ORDER BY doc_lib DESC ";
$qry2 = pg_query ($conn, $sql2);
$clefile = $result2['doc_file'];
if ($result2['doc_cat'] == $result2['cat_cle'])
{
while ($result2 = pg_fetch_assoc($qry2))
{
echo $result2['doc_lib'] . "<br>";
}
}
}
Marsh Posté le 31-01-2006 à 11:57:14
Tu as tout mélangé
Si tu fais des requetes dans ta boucle tu n'as pas besoin de faire une jointure sur la 2eme. Change là en:
Code :
|
Par contre je le redis, c'est pas terrible comme solution parce que si tu as 100 catégories tu vas faire 101 requêtes , alors qu'une seule suffisait!
Marsh Posté le 31-01-2006 à 10:54:04
Bonjour,
Voici mon problème.
J'ai une table 'categorie' avec cat_cle (id) et cat_lib (libellé) de la catégorie.
J'ai une table 'documents' avec doc_cle (id), doc_lib (libellé), doc_date, doc_cat (catégorie du doc)
Je souhaite faire un menu avec de cette manière :
1. categorieA
1a. document1 de la catégorie A
1b. document2 de la catégorie A
1c. document3 de la catégorie A
2. catégorieB
2a. document1 de la catégorie B
2b. document2 de la catégorie B...
Avez-vous une solution?