Accueil > Forum > > > > Afficher valeurs de tables
Afficher valeurs de tables
dimanche 30 octobre 2005 à 01:34:52 |
Afficher valeurs de tables

Xini28
|
Salut à tous. J'ai un petit problème sur l'affichage en fonction de deux tables. Ces tables sont en relation avec une autre table pour les lier. J'ai la table contact avec tous mes contacts, ensuite la table section avec toutes mes sections. Après j'ai la table gérer qui permet de relier mes deux tables précédentes. En fait, je voudrais afficher pour un contact, toutes les sections auquel il appartient. J'arrive à afficher les contacts avec les sections, mais les contacts sont marqués en plusieurs exemplaires en fonction du nombre de sections auquel il appartient. Hors je voudrais afficher une fois le contact, suivi de ses sections. Besoin d'un coup de main. Merci d'avance.
|
|
dimanche 30 octobre 2005 à 07:39:57 |
Re : Afficher valeurs de tables

monoceros01
|
Réponse acceptée !
Tu as deux choix me semble-t-il :
1/
<?php
$query = "SELECT contact.nom, section.nom FROM contact,section,gerer
WHERE contact.id=gerer.id_contact AND section.id=gerer.id_section ORDER
BY contact.nom ASC";
$result = mysql_query($query,$id_con);
?>
// Ce qui te donne un tableau associant les nom de tes contacts et leurs sections.
// Mais, les contacts qui ne sont dans aucune section ne serons jamais affichés.
// De même que les sections qui n'ont aucuns contacts.
2/
<?php
$query = "SELECT contact.id, contact.nom, gerer.id_section ";
$query.= "FROM contact ";
$query.= "LEFT JOIN gerer ";
$query.= "ON contact.id = gerer.id_contact";
$query.= "ORDER BY contact.nom ASC";
$result = mysql_query($query,$id_con);
?>
Cette requête crée un tableau associant chaque contact avec une section à laquelle il appartient.
Donc si un utilisateur est dans plusieurs section, il sera évidemment inscrit plusieurs fois.
Alors que si un utilisateur n'est dans aucune des sections, il sera associé à la valeur NULL
Quoiqu'il en soit, pour éviter d'afficher deux fois le même noms, il te suffit de faire :
<?php
$list = array();
while ($data = mysql_fetch_array($result))
{
$list[$data['contact.nom']][] = $data['section.nom'] ;
}
?>
Et de traiter le tableau résultant
Ou alors
<?php
$controle = '';
$list = '<ul>';
while ($data = mysql_fetch_array($result))
{
if($controle !== $data['contact.nom'])
{
$list .= ($controle === '') ? '' : '</ul></li>' ;
$list .= '<li>'.$data['contact.nom'] ;
$list .= '<ul>';
$controle = $data['contact.nom']
; // De cette façon, ce bloc IF ne s'executera qu'au
prochain changement de contact.nom
}
$list.= '<li>'.$data['section.nom'].'</li>' ;
}
$list.='</ul>';
?>
Et d'afficher la variable $list
|
|
dimanche 30 octobre 2005 à 07:43:31 |
Re : Afficher valeurs de tables

monoceros01
|
Réponse acceptée !
Ah j'ai oublié de dire que pour le 2° choix il faudra créer une boucle pour retrouver le nom de la section pour chaque gerer.id_section. C'est ce qui fait que c'est un choix plus lourd!
Donc les boucles while que j'ai présentées ne sont valables que pour le premier choix. Mais le principe est le même :)
|
|
dimanche 30 octobre 2005 à 10:20:52 |
Re : Afficher valeurs de tables

Anthomicro
|
Salut,
plutôt que de faire des boucles inutiles pour savoir si y'a un nom
identique, utilise la clause DISTINCT dans la requête MySQL :-)
|
|
dimanche 30 octobre 2005 à 10:47:44 |
Re : Afficher valeurs de tables

monoceros01
|
requête SQL:
SELECT contact.nom, section.nom FROM contact, section, gerer WHERE contact.id = gerer.id_contact AND section.id = gerer.id_section ORDER BY contact.nom ASC LIMIT 0 , 30
|
| [Modifier] [Expliquer SQL] [Créer source PHP] [Actualiser] |
|
|---|
|
|
|
| luc |
CE1 |
| luc |
CE2 |
| luc |
CM1 |
| nicolas |
CM1 |
| paul |
CM1 |
| paul |
CM2 |
| robert |
CE2 |
| robert |
CM2 |
requête SQL:
SELECT DISTINCT contact.nom, section.nom FROM contact, section, gerer WHERE contact.id = gerer.id_contact AND section.id = gerer.id_section ORDER BY contact.nom ASC LIMIT 0 , 30
|
| [Modifier] [Expliquer SQL] [Créer source PHP] [Actualiser] |
|
|
|
|
| luc |
CE1 |
| luc |
CE2 |
| luc |
CM1 |
| nicolas |
CM1 |
| paul |
CM1 |
| paul |
CM2 |
| robert |
CE2 |
| robert |
CM2 |
Ou est la différence? o.o
|
|
dimanche 30 octobre 2005 à 10:50:24 |
Re : Afficher valeurs de tables
|
dimanche 30 octobre 2005 à 10:51:30 |
Re : Afficher valeurs de tables

Anthomicro
|
exporte la table que t'as crée stp monoceros :-) (ça m'évitera de la refaire)
|
|
dimanche 30 octobre 2005 à 11:01:44 |
Re : Afficher valeurs de tables
|
dimanche 30 octobre 2005 à 11:03:38 |
Re : Afficher valeurs de tables

Anthomicro
|
RAAAAAAHHHHH ok... (j'avais pas lu le problème en fait)
je ne connais pas d'autre moyen que de parser tous les résultats (aie)
|
|
dimanche 30 octobre 2005 à 11:04:06 |
Re : Afficher valeurs de tables

Anthomicro
|
je croyais qu'il te fallait un seul nom...
|
|
Cette discussion est classée dans : table, afficher, tables, contact, sections
Répondre à ce message
Sujets en rapport avec ce message
Liaison de table. [ par benett ]
Bojour à tous,Pouvez-vous m'expliquez comment gérer les liaisons de type N-N entre 2 tables, j'ai un fichier intermédiaire de créer, mais je ne sais p
Liaison de table. [ par benett ]
Bojour à tous,Pouvez-vous m'expliquez comment gérer les liaisons de type N-N entre 2 tables, j'ai un fichier intermédiaire de créer, mais je ne sais p
Liaison entre les tables [ par coupeau ]
BonjourJ'ai deux tablesune table documentation et une table mot-clé. Comment puis insérer plusieurs mots-clés (N: cela dépend du document parfois 1 mo
Afficher une ligne d'une table mysql [ par Alferox ]
Bonjours,bon bin une question de base toute con.Je voudrais afficher uniquement la ligne qui port l'id 2 d'une table. Il n'y a pas plus simple que de
Bloquage de tables (LOCK) [ par STef77 ]
Bonsoir,J'ai une question sur MySQL (j'utilise la version 3.23.49-log sur ma debian (woody)).Etant donné que MySQL ne supporte pas les clés étrangères
Sélectionner les lignes différentes entre deux tables [ par Mikemadest ]
Bonjour,J'ai cherché sans trouver de réponse à mon problème,ce qui m'amène à vous poser cette question !D'avance je m'excuse si j'ai raté la solution
Création de Tables via fichier .sql [ par LePhenol ]
Bonjour, Je suis en train de créer un install.php pour installer un petit portail que j'ai programmé. J'en suis à la création des Tables SQL dans ma B
comparaison d'enregistrements dans 2 tables [ par michelvernet2 ]
bonjour,j'ai une table ETUDIANT composée des variables $A, $B, $C . cette table contient 30 lignes.j'ai une table REPONSES composée de svariables $RA,
Comment m'y prendre? [ par zzzzzz ]
Salut.En fait jai une table qui contient plusieurs champs. J'aimerai faire une sorte de "confimation" c'est pour un gereur d'article. Qq poste un arti
requête de non concordance avec jointure 3 tables [ par dubitoph ]
ChristopheHé oui, je suis toujours là avec mes angoisses pour mon mémoire.J'ai une base de données MySql qui contient, en autres, une table "interimai
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
XML ET PHPXML ET PHP par karouani
Cliquez pour lire la suite par karouani RE : GOOGLE MAPRE : GOOGLE MAP par inwebo
Cliquez pour lire la suite par inwebo
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|