Xini28
Messages postés40Date d'inscriptionmercredi 28 septembre 2005StatutMembreDernière intervention 9 août 2008
-
30 oct. 2005 à 01:34
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 2015
-
30 oct. 2005 à 21:26
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.
monoceros01
Messages postés420Date d'inscriptionvendredi 28 novembre 2003StatutMembreDernière intervention20 mars 2006 30 oct. 2005 à 07:39
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.
monoceros01
Messages postés420Date d'inscriptionvendredi 28 novembre 2003StatutMembreDernière intervention20 mars 2006 30 oct. 2005 à 07:43
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 :)
monoceros01
Messages postés420Date d'inscriptionvendredi 28 novembre 2003StatutMembreDernière intervention20 mars 2006 30 oct. 2005 à 10:47
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,
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,
Xini28
Messages postés40Date d'inscriptionmercredi 28 septembre 2005StatutMembreDernière intervention 9 août 2008 30 oct. 2005 à 14:47
J'utilise ce code :
$result mysql_query('SELECT contact.num_contact, contact.pseudo_contact, gérer.num_section FROM contact LEFT JOIN gérer ON contact.num_contact gérer.num_contact ORDER BY contact.nom ASC');
$controle = '';
$list = '';
while ($data = mysql_fetch_array($result))
{
if($controle !== $data['contact.pseudo_contact'])
{ $list .($controle '') ? '' : '</li>' ;
$list .= '<li>'.$data['contact.pseudo_contact'] ;
$list .= '';
$controle = $data['contact.pseudo_contact'] ; // De cette façon, ce bloc IF ne s'executera qu'au prochain changement de contact.nom
}
$list.= '<li>'.$data['section.nom_section'].'</li>' ;
}
$list.='';
Cependant, je n'arrives pas à faire fonctionner. Cela m'affiche le message d'erreur :
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in d:\www\stargate-web.com\htdocs\connexionbis.php on line 16 De quoi cela pourrait venir?
Xini28
Messages postés40Date d'inscriptionmercredi 28 septembre 2005StatutMembreDernière intervention 9 août 2008 30 oct. 2005 à 14:57
J'ai réussi à afficher. En effet, il y avait une erreur. Cependant, cela m'affiche
<LI>
<LI>
<LI>
<LI>
<LI>
<LI>
<LI>
<LI>
<LI>
<LI>
<LI></LI>
C'est tout ce que ça m'affiche. Je ne comprends pas. Je voudrais arriver à afficher une fois le contact suivi de ses sections.