Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1498 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  requete SQL -> Array : perfectionnement du code !!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

requete SQL -> Array : perfectionnement du code !!

n°1122390
100top
Posté le 16-06-2005 à 18:42:17  profilanswer
 

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 :
  1. `relations` (
  2.   `id_r` int(10) NOT NULL auto_increment,
  3.   `r_id1` int(10) NOT NULL default '0',   // id sur laquelle on voit la fiche
  4.   `r_id2` int(10) NOT NULL default '0',  // id des personnes en relation direct frere et soeur
  5.   `r_type` int(5) NOT NULL default '0',   // si cousin
  6.   `r_etat` int(3) NOT NULL default '0',   // mort ou pas  
  7.   `r_date` int(15) NOT NULL default '0', 
  8.   PRIMARY KEY  (`id_r`)
  9. ) 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 :
  1. $db = mysql_connect("$serveur", "$identifiant", "$mdp" );
  2. mysql_select_db("$bdd",$db) or die("$erreur1" );
  3. $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" );
  4. $res = mysql_num_rows($req);
  5. $ii=0;
  6. $recherche1="r_id1=''";
  7. $recherche11="r_id2=''";
  8. WHILE($res!=$ii)
  9.   {
  10.    $r_id1 = mysql_result($req,$ii,"r_id1" );
  11.    $r_id2 = mysql_result($req,$ii,"r_id2" );
  12.      if($r_id1=="$id_m" )
  13.       { $recherche1.=" or r_id1='$r_id2'";
  14.     $recherche11.=" or r_id2='$r_id2'"; }
  15.    elseif($r_id2=="$id_m" )
  16.       { $recherche1.=" or r_id1='$r_id1'";
  17.     $recherche11.=" or r_id2='$r_id1'"; }
  18.    $ii++;
  19.     }
  20. $sql="SELECT r_id1,r_id2 FROM $table_relations WHERE ( $recherche1 or $recherche11) and r_etat='2' LIMIT $debut, $fin";
  21. $req = mysql_query($sql);
  22. $res = mysql_num_rows($req);
  23. $ii=0;
  24. // id_m correspond a l'id de la fiche de la personne
  25. $recherche2="id_m=''";
  26. WHILE($res!=$ii)
  27.   {
  28.    $r_id1 = mysql_result($req,$ii,"r_id1" );
  29.    $r_id2 = mysql_result($req,$ii,"r_id2" );
  30.    $recherche2.="or id_m='$r_id2'";
  31.    $recherche2.="or id_m='$r_id1'";
  32.    $ii++;
  33.     }
  34. $sql_affc="SELECT * FROM $table_membre Where $recherche2 Limit $debut, $fin";
  35. $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
mood
Publicité
Posté le 16-06-2005 à 18:42:17  profilanswer
 

n°1122403
Monsieur S​eb
Posté le 16-06-2005 à 18:53:12  profilanswer
 

Citation :

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 !!!!
 


 
 [:alph-one]  
 
avec des explications comme ça ... sur on a tout compris  [:maverick10]

n°1122405
100top
Posté le 16-06-2005 à 18:57:08  profilanswer
 

r_id1 contient le numéro de la fiche que tu regardes  
r_id2 contient les numéro des fiches en relation avec le numéro que tu regardes  
 
en fait le but c'est de faire la liste des r_id2 mais aussi les fiches des personnes en relation avec les personnes en relations avec la fiche que tu regardes !
je sais c un peu compliké mais c compréhensible !

n°1122409
ritzle
Posté le 16-06-2005 à 18:58:44  profilanswer
 

ouais, y'a plein de trucs en double.
un petit tableau et hop.

n°1122411
100top
Posté le 16-06-2005 à 18:59:35  profilanswer
 

ritzle a écrit :

ouais, y'a plein de trucs en double.
un petit tableau et hop.


 
 
est ce que tu pourrais me faire un début de tableau pour que je sache comment m'y prendre ( genre sur la premiére boucle )???

n°1122435
100top
Posté le 16-06-2005 à 19:26:10  profilanswer
 

avec les tableaux ca donne ca  
 

Code :
  1. $db = mysql_connect("$serveur", "$identifiant", "$mdp" );
  2. mysql_select_db("$bdd",$db) or die("$erreur1" );
  3. $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" );
  4. $res = mysql_num_rows($req);
  5. $ii=0;
  6. $recherche1 = array();
  7. WHILE($res!=$ii)
  8.   {
  9.    $r_id1 = mysql_result($req,$ii,"r_id1" );
  10.    $r_id2 = mysql_result($req,$ii,"r_id2" );
  11.      if($r_id1=="$id_m" )
  12.       { $recherche1[] = mysql_result($req,$i,"id_m2" );
  13.                           }
  14.    elseif($r_id2=="$id_m" )
  15.       { $recherche1[] = mysql_result($req,$i,"id_m1" );
  16.      }
  17.    $ii++;
  18.     }


 
 
donc dans le tableau $recherche1 ya tout les fiches des r_id2 mais je ne pas comment faire une requete apres ?
de l'aide ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  requete SQL -> Array : perfectionnement du code !!

 

Sujets relatifs
Eclipse : code Java non reconnu[PB] Droit sous SQL ???
Javascript Screennnnnnnnnnnnnnconversion de caractère en date sous SQL server
VLC: decodage d'un Truncated Exp-Golomb code [Résolu]Place enregistrement VB6/SQL
[SGBD] dBase > SQL[SGBD]Consommation memoire SQL SERVER 2000
Générateur de code ?[.net] Valeur de retour d'une requête SQL
Plus de sujets relatifs à : requete SQL -> Array : perfectionnement du code !!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR