100top | Salut à tous,
voila mon code marche très bien mais je sais que le code n'est vraiment pas beau !!!
je voudrais savoir comment faire pour éxecuter le type de requete !!
relation comme un arbre généalogique cousin etc...
la table :
Code :
- `relations` (
- `id_r` int(10) NOT NULL auto_increment,
- `r_id1` int(10) NOT NULL default '0', // id sur laquelle on voit la fiche
- `r_id2` int(10) NOT NULL default '0', // id des personnes en relation direct frere et soeur
- `r_type` int(5) NOT NULL default '0', // si cousin
- `r_etat` int(3) NOT NULL default '0', // mort ou pas
- `r_date` int(15) NOT NULL default '0',
- PRIMARY KEY (`id_r`)
- ) TYPE=MyISAM AUTO_INCREMENT=22 ;
|
explication du fonctionnemnt de la requete voulu !
r_id1 et r_id2 correpondent aux id des membres, chaque membres a plusieurs relation ( frere et soeur) et en fait je voudrais sortir les r_id2 des personnes de r_id1 mais aussi les r_id2 des r_id2 !!!!
voila comment je fais mais c'est pas beau !!
Code :
- $db = mysql_connect("$serveur", "$identifiant", "$mdp" );
- mysql_select_db("$bdd",$db) or die("$erreur1" );
- $req = mysql_query("SELECT r_id1,r_id2 FROM $table_relation WHERE ( r_id1='$id_m' or r_id2='$id_m') and r_etat='2' LIMIT $debut, $fin" );
- $res = mysql_num_rows($req);
- $ii=0;
- $recherche1="r_id1=''";
- $recherche11="r_id2=''";
- WHILE($res!=$ii)
- {
- $r_id1 = mysql_result($req,$ii,"r_id1" );
- $r_id2 = mysql_result($req,$ii,"r_id2" );
- if($r_id1=="$id_m" )
- { $recherche1.=" or r_id1='$r_id2'";
- $recherche11.=" or r_id2='$r_id2'"; }
- elseif($r_id2=="$id_m" )
- { $recherche1.=" or r_id1='$r_id1'";
- $recherche11.=" or r_id2='$r_id1'"; }
- $ii++;
- }
- $sql="SELECT r_id1,r_id2 FROM $table_relations WHERE ( $recherche1 or $recherche11) and r_etat='2' LIMIT $debut, $fin";
- $req = mysql_query($sql);
- $res = mysql_num_rows($req);
- $ii=0;
- // id_m correspond a l'id de la fiche de la personne
- $recherche2="id_m=''";
- WHILE($res!=$ii)
- {
- $r_id1 = mysql_result($req,$ii,"r_id1" );
- $r_id2 = mysql_result($req,$ii,"r_id2" );
- $recherche2.="or id_m='$r_id2'";
- $recherche2.="or id_m='$r_id1'";
- $ii++;
- }
- $sql_affc="SELECT * FROM $table_membre Where $recherche2 Limit $debut, $fin";
- $reqc = mysql_query($sql_affc);
|
comment peut on faire ????
avec des array ??
mais le pb c'est que je ne sais pas comment faire pour faire des requetes avec des requetes !
si quelqu'un pouvait m'aider a changer mon code ( meme s'il marche ) pour que je m'améliore !!
merci
PS: n'hésitez pas à écrire ou poser des questions Message édité par - janfy - le 16-06-2005 à 20:15:52
|