begin process at 2012 05 31 05:52:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Bases de données

 > 

php/mysql requete plusieurs tables et bases


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

php/mysql requete plusieurs tables et bases

vendredi 7 octobre 2005 à 11:52:30 | php/mysql requete plusieurs tables et bases

fredo35m

Bonjour,

j'aimerais savoir comment faire pour requeter sur plusieurs tables et bases, je m'explique :

BASE 1:
Requête 1 : Sélection des CODES COMMUNES selon critère utilisateur sur la TABLE 1

Requete 2 : Sélection des CODES ACTIVITES selon critère utilisateur sur la TABLE 2
(jusque là ça va)

BASE 2
Requête 3 : Sélection des CODES ACTIVITES et des CODES COMMUNES dans ma table 3 selon les 2 premières requetes afin d'obtenir les EFFECTIFS PAR COMMUNE ET ACTIVITES.

Merci d'avance pour votre aide !!!!

Voici une partie de mon code (je sais pas si c'est très utile mais bon..)

Requête 1 :
//SELECTION DU TERRITOIRE SOUHAITE ET LA LISTE DU TERRITOIRE
$query_req = mysql_query("select distinct $table_serveur.TYPE_ELT,
            $table_serveur.CODE_GROUPE,
            $table_serveur.CODE_REGROUPT as CODE_REGROUPT,
            $tabled_serveur.NOM_REGROUPT,
            $tabled_serveur.CODE_REGROUPT as CODE_REGROUPTb
      from $table_serveur, $tabled_serveur
      where $table_serveur.CODE_REGROUPT='$territoire' and
            $tabled_serveur.CODE_REGROUPT=$table_serveur.TYPE_ELT and
      $table_serveur.CODE_GROUPE='$CODE_GROUPEB'");

if (!$query_req)
{
   die('Requête A invalide : ' . mysql_error());
}
if ($query_req)
{ echo "OK REQ A";}

while ($datareq = mysql_fetch_array($query_req))
{
$query_reqb=mysql_query("select CODE_ELT, CODE_GROUPE from $tableb_serveur where $tableb_serveur.CODE_GROUPE='$datareq[CODE_GROUPE]'");
}
if (!$query_reqb)
{ die('Requête B invalide : ' . mysql_error()); exit();}
if ($query_reqb)
{ echo "OK REQ B";}

Requête 2 :
//SELECTION DES CODES NAF CORRESPONDANT A LA DEMANDE DU CODE
$query_reqnaf = mysql_query(' select NAF700, '.$VALEUR_CD.', '.$act.'
              from '.$tablec_serveur.'
                               where '.$act.'='.$VALEUR_CD.' ');
if (!$query_reqnaf)
{
   die('Requête A NAF invalide : ' . mysql_error());
}
if ($query_reqnaf)
{ echo "OK REQ A NAF";}

Requete 3 (pas bonne) :
//SELECTION DANS BASE 2
if (!mysql_select_db($database_local, $local))
{
echo "ERREUR BASE LOCAL";
exit();
}
while ($datareqb = mysql_fetch_array($query_reqb))
{
$query_reqnafb=mysql_query('select distinct ANNEE, NAF700, DECOM, EMP_T_TOTA
       from '.$table_local.'
       where DECOM='.$datareqb[CODE_ELT].'                             
       GROUP BY NAF700, ANNEE
       ORDER BY NAF700, ANNEE');    
}
while ($datareqnafb = mysql_fetch_array($query_reqnafb))
{
$query_reqnafc=mysql_query('select distinct ANNEE, NAF700, DECOM, SUM(EMP_T_TOTA) as somme
       from '.$table_local.'
       where NAF700="'.$datareqnafb[NAF700].'"                             
       GROUP BY NAF700, ANNEE
       ORDER BY NAF700, ANNEE');
}

vendredi 7 octobre 2005 à 14:29:01 | Re : php/mysql requete plusieurs tables et bases

fredo35m

j'ai essayé un truc comme ça et ça marche pas non plus !!!! J'ai beau tourner dans tous les sens j'y arrive pas !!!
Quelqu'un a une idée pour ça ??? merci je désespère !!!


while ($datareqb = mysql_fetch_array($query_reqb))
{
while ($datareqnaf = mysql_fetch_array($query_reqnaf))
{
$query_reqnafb=mysql_query('select ANNEE, NAF700, DECOM, SUM(EMP_T_TOTA) as somme
       from '.$table_local.'
       where NAF700="'.$datareqnaf[NAF700].'" and DECOM='.$datareqb[CODE_ELT].'                            
       GROUP BY NAF700, ANNEE
       ORDER BY NAF700, ANNEE');
}
}
vendredi 7 octobre 2005 à 14:46:42 | Re : php/mysql requete plusieurs tables et bases

davwart


Fred...
pourrais tu essayer de simplifier ton pb et donner un exemple "bete"?
parce que là, perso, ça me donne mal à la tete rien que de lire ton truc ;)
-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
vendredi 7 octobre 2005 à 15:02:45 | Re : php/mysql requete plusieurs tables et bases

fredo35m

Dac !!!
Alors en faite, j'ai 3 tables.
dans la 1ere table j'ai 2 vairables : CODE_COMMUNE et CODE_GROUPE

1ère requete : sélection des CODE_COMMUNE correspondant à un CODE_GROUPE particulier (donné par l'utilisateur)
-> ça ça marche
$query_reqb=mysql_query("select CODE_ELT, CODE_GROUPE from $tableb_serveur where $tableb_serveur.CODE_GROUPE='$datareq[CODE_GROUPE]'");

dans une 2ème table j'ai 2 variables : CODE_ACTIVITE et GROUPE_ACTIVITE

2ème requète : sélection des CODE_ACTIVITE correspondant à un GROUPE d'aCTIVITE particulier (donné par l'utilisateur)
-> ça ça marche.
$query_reqnaf = mysql_query(' select NAF700, '.$VALEUR_CD.', '.$act.' from '.$tablec_serveur.' where '.$act.'='.$VALEUR_CD.' ');

dans une 3ème table j'ai 3 variables : CODE_COMMUNE, CODE_ACTIVITE, EFFECTIF
3ème requête : je souhaite pouvoir effectuer une requête sur cette table en fonction des résultats des 2ères requêtes afin d'en retenir une somme d'effectif. C'est à dire que je souhaite sélectionner les CODE_COMMUNE et les CODE_ACTIVITE dans ma table 3 correspondant aux 2 premières requetes.
j'ai essayé un truc du style là mais ça ne marche pas :
while ($datareqb = mysql_fetch_array($query_reqb))
{
while ($datareqnaf = mysql_fetch_array($query_reqnaf))
{
$query_reqnafb=mysql_query('select ANNEE, NAF700, DECOM, SUM(EMP_T_TOTA) as somme
       from '.$table_local.'
       where NAF700="'.$datareqnaf[NAF700].'" and DECOM='.$datareqb[CODE_ELT].'                            
       GROUP BY NAF700, ANNEE
       ORDER BY NAF700, ANNEE');
}
}

Je sais pas is j'ai été plus clair????
merci de ton aide !!!
vendredi 7 octobre 2005 à 15:06:35 | Re : php/mysql requete plusieurs tables et bases

fredo35m

un truc que j'ai pas dit c'est que les les tables 1 et 2 sont dans une base et que la table 3 est dans une autre ....
vendredi 7 octobre 2005 à 15:19:49 | Re : php/mysql requete plusieurs tables et bases

davwart


Salut..

merci d'avoir fait l"effort de preciser ta question
je vais alros faire l'effort de tenter de répondre.
si je comprends bien.
tu as deux entrées de l'utilisateur: $A1 et $B1
tu as trois tables:
table A: champ A1 et champ A2
table B: champ B1 et champ B2
table C: champ A2 et champ B2 et champ C1

tu veux  que  à partir de $A1 et $B1 tu retrouves C1.

Voici comment je ferais:

query="SELECT C.C1 FROM A,B,C WHERE A.A1=$A1 AND B.B1=$B1 AND C.A2=A.A2 AND C.B2=B.B2" 
(les variables avec les $ sont tes variables d'entrées..)


-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
vendredi 7 octobre 2005 à 15:26:53 | Re : php/mysql requete plusieurs tables et bases

davwart

pour les probleme de changement de base, rajoute le nom de tes base de données devant tes tables ------------------------------------- Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
vendredi 7 octobre 2005 à 15:28:52 | Re : php/mysql requete plusieurs tables et bases

fredo35m

oui en fait en écrivant ma "précision" je me suis aperçu de la technique à adopter mais est-il possible de faire un select sur deux bases en même temps ?? car mon problème est là désormais je sais pas comment lui dire que telle table se trouve sur telle base etc ...!!
merci pour ta réponse en tout cas !!! ça commence à me débloquer !!!!
vendredi 7 octobre 2005 à 16:06:42 | Re : php/mysql requete plusieurs tables et bases

davwart

oui oui, mets le nom de ta db devant tes tables ------------------------------------- Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
vendredi 7 octobre 2005 à 17:42:07 | Re : php/mysql requete plusieurs tables et bases

fredo35m

Bon j'y suis presque mais j'ai encore un petit soucis, je mets ma requête pour t'expliquer :

SELECT $cnx.$table_groupes.TYPE_ELT,
            $cnx.$table_groupes.CODE_GROUPE,
            $cnx.$table_groupes.CODE_REGROUPT,
           
            $cnx.$table_regroupt.NOM_REGROUPT,
            $cnx.$table_regroupt.CODE_REGROUPT,
           
            $cnx.$table_det_grp.CODE_GROUPE,
            $cnx.$table_det_grp.CODE_ELT,
           
            $cnx.$table_naf.NAF700,
            $cnx.$table_naf.NAF60,
           
            $unedic.$table_unedic.DECOM,
            $unedic.$table_unedic.NAF700,
            $unedic.$table_unedic.ANNEE,
            SUM($unedic.$table_unedic.EMP_T_TOTA) as somme 
                       
      FROM $cnx.$table_groupes, $cnx.$table_regroupt, $cnx.$table_det_grp, $cnx.$table_naf, $unedic.$table_unedic
      WHERE $cnx.$table_groupes.CODE_REGROUPT='$territoire' and 
      $cnx.$table_groupes.TYPE_ELT=$cnx.$table_regroupt.CODE_REGROUPT and
      $cnx.$table_groupes.CODE_GROUPE=$cnx.$table_det_grp.CODE_GROUPE and
      $cnx.$table_groupes.CODE_GROUPE='$CODE_GROUPEB' and
      $unedic.$table_unedic.DECOM=$cnx.$table_det_grp.CODE_ELT and
      $cnx.$table_naf.NAF60='$VALEUR_CD' and
      $unedic.$table_unedic.NAF700=$cnx.$table_naf.NAF700
      GROUP BY $unedic.$table_unedic.NAF700, $unedic.$table_unedic.ANNEE 
      ORDER BY $unedic.$table_unedic.NAF700, $unedic.$table_unedic.ANNEE  
      ");

J'ai un problème avec la partie en gras, si je l'enlève ça marche bien sauf qu'il ne fait pas le lien entre la NAF700 de la table unedic et la NAF700 de la table naf. (=CODE_ACTIVITE), mais quand je le mets ça ne marche plus.
Ce qui m'étonne c'est que la partie qui est en rouge reviens à la même chose (=CODE_COMMUNE), et là il fait bien la correspondance entre les 2 tables, c'est à dire que le code commune est le même.
As tu une idée de où cela peut venir??
Désolé de t'embeter encore mais j'y suis presque (je pense et il me reste plus que ce soucis !!!)
merci encore !!!


1 2

Cette discussion est classée dans : table, code, mysql, serveur, query


Répondre à ce message

Sujets en rapport avec ce message

galere avec free et php MySQL [ par bigfootspi ] bon voila le code de mon livre d'or !le soucis c'est qu'il met dix ans a se connecter a la base alors que de temps en temps il va vite ! je ne compren deux pb dans mon code php!! [ par dev10 ] voilà mon prbolème, si squelqu'un peut m'aiderWarning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\....doc.php on l updater plusieurs lignes en meme temps [ par plasticode ] here i come again.voilà je mets en place une page modif.php qui fait appel àune base de données mysql avec plusieurs tables liées.Mes mises a jour fon je comprends pas le probleme [ par Teclis01 ] voici l erreur:Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-7\www\creerfacture.ph recherche d une id sur 3 tables [ par Teclis01 ] voici l'erreurParse error: parse error, unexpected T_ELSE voici le code!$table="etcitem";  $query = "SELECT * FROM $table WHERE item_id= $item";  $res Comparer des valeurs d'une table avec une autre table selon la ligne [ par lildan ] Bonjour tout le monde,voici le code que j'utilise pour vérifier si une valeur d'une table égale la valeur d'une autre table: $query = "SELECT * FROM v Problème de formulaire dynamique [ par labouse ] Bonjour,Bon je vais essayer d'être clair: j'ai une table mysql avec nom prénom et un code service je fais une requete pour afficher tout le monde pour Problemes d'affichage avec une boucle tanque [ par pekplusultra ] Bonjour,Je souhaiterais afficher les resultats de ma table par liste comme ci dessous:Nom      Sujet      Envoyeur ...Mon code fo Correction de code simple pour debutant [ par michmichman ] Bonjour j'ai fais un petit code pour verifier si un utilisateur est enregistré dans ma db mais bien sur il marche pasje vous le montre je suis sur que requete SQL avec array [ par joebuz ] Bonjour a tous,Voila j'ai plusieurs requete SQL a suivre qui sont identiques a part la valeur du champ qui changent, je me demandais s'il n'etais pas


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales