Petit casse-tête

Fermé
Germaris Messages postés 2 Date d'inscription dimanche 24 mars 2013 Statut Membre Dernière intervention 24 mars 2013 - Modifié par Germaris le 24/03/2013 à 21:23
blux Messages postés 26023 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 6 mai 2024 - 25 mars 2013 à 09:23
Bonjour,

Je gère un petit annuaire dont l'interface est en Flash et qui communique via PHP avec une base de données MySQL.

Un utilisateur voulant connaître la liste de ses copains habitant un département donné sélectionne ce département et obtient immédiatement le résultat.
Requête :
$query =mysql_query ("SELECT * FROM $table WHERE country='France' AND postalCode like '$dep%' ORDER BY lastName, firstName, school " )

Comment faire pour que, en cochant une case, il obtienne aussi la liste de ceux habitant les départements limitrophes de celui sélectionné ?

J'ai une liste donnant, pour chaque département, ceux qui sont limitrophes.
Exemple :
01:38,39,69,71,73,74
02:08,51,59,60,77,80
03:18,23,42,58,63,71
...etc

Comment stocker cette liste dans une table ?
Et, SURTOUT, comment exploiter cette liste pour ajouter aux résultats de la requête ci-dessus ceux concernant les départements limitrophes ?

Merci d'avance pour toute aide, solution ou suggestion !

1 réponse

blux Messages postés 26023 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 6 mai 2024 3 289
Modifié par blux le 24/03/2013 à 21:27
Salut,

il te faut une relation n-n réflexive.
Puisque l'on peut modéliser le fait qu'un département est en relation avec plusieurs autres...

Si ton SGBD le permet, tu crées une table intermédiaire qui est en relation deux fois avec ta table.

Comme ici.

Une fois que cette contrainte sera modélisée, la requête ad hoc sera facile.

A+ blux
 "Les cons, ça ose tout. 
C'est même à ça qu'on les reconnait"
0
Germaris Messages postés 2 Date d'inscription dimanche 24 mars 2013 Statut Membre Dernière intervention 24 mars 2013
24 mars 2013 à 21:35
Je te remercie beaucoup pour ta réponse.
:-)

Elle dépasse un peu mes compétences actuelles mais ce n'est pas grave.
Je vais étudier le sujet sur la page que tu m'as indiquée et je reviendrai ici après avoir fait des tests...
0
blux Messages postés 26023 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 6 mai 2024 3 289
Modifié par blux le 25/03/2013 à 09:25
Les compétences sont faites pour être enrichies...

Tu peux regarder ici et plus généralement tout ce qui concerne la 'réflexivité' (en termes de bases de données, pas en termes algébriques, bien sûr !):

http://www.sam-mag.com/P53,53,5,55,,,default.aspx
https://merise.developpez.com/faq/?page=MLD#MLD_Reflexivite
0