Petit casse-tête

Germaris Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
blux Messages postés 27124 Date d'inscription   Statut Modérateur Dernière intervention   -
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 27124 Date d'inscription   Statut Modérateur Dernière intervention   3 360
 
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   Statut Membre Dernière intervention  
 
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 27124 Date d'inscription   Statut Modérateur Dernière intervention   3 360
 
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