[php] requete avec des jointures

requete avec des jointures [php] - PHP - Programmation

Marsh Posté le 06-12-2002 à 13:59:50    

mes tables  
 
table utilisateurs:
 
| nom  | prenom | fonction | id_site  | id_service | id_societe |
|pierre | jean   | admin    | 1     | 2       | 1       |
 
table site
 
| id_site | nom  |
| 1       | paris|
| 2       | lyon |  
 
table service
 
| id_ervice | nom    |
| 1         | compta |
| 2         | info   |
 
table societe
 
| id_societe | nom   |
| 1          | Tek |
| 2          | crosoft |  
 
je voudrais faire une requete qui affiche  
 
 
| nom   | prenom | fonction | site  | service | societe |
|pierre | jean   | admin    | paris | info    | Tek     |


Message édité par sakuraba le 06-12-2002 à 14:38:50
Reply

Marsh Posté le 06-12-2002 à 13:59:50   

Reply

Marsh Posté le 06-12-2002 à 14:04:34    

Reply

Marsh Posté le 06-12-2002 à 14:09:37    

D'accord avec beleg.
 
Et, pour aider les étudiants paumés dans les clés étrangères :
 

Code :
  1. select util.nom          as 'nom',
  2.        util.prenom       as 'prenom',
  3.        util.fonction     as 'fonction',
  4.        site.nom          as 'site',
  5.        serv.nom          as 'service',
  6.        soci.nom          as 'societe'
  7. from
  8.        utilisateurs      util,
  9.        site,
  10.        service           serv,
  11.        societe           soci
  12. where
  13.        util.site         = site.id_site
  14. and
  15.        util.service      = serv.id_service
  16. and
  17.        util.societe      = soci.id_societe


 
PS : la nomenclature est déplorable, trop souvent le cas dans les énoncés d'étudiants [:spamafote]


Message édité par Fred999 le 06-12-2002 à 14:10:01
Reply

Marsh Posté le 06-12-2002 à 14:24:08    

<?php
    $dbhost="localhost";
    $dblogin="root";
    $dbpassword="";
    $dbname="intranet";
   
    //recupere le contenu du champs du fichier MenuSql.php  
   
    $nom     = $_GET["liste1"];
 
    //requete qui teste l existance du nom dans la base de donnée Mysql
     mysql_connect($dbhost,$dblogin,$dbpassword);mysql_selectdb($dbname);
    $sql_results=mysql_query("select util.nom as 'nom',util.prenom as 'prenom',util.fonction as 'fonction',site.nom as 'site',serv.nom as 'service',soci.nom as 'societe' from utilisateurs util,site,service serv,societe soci where util.site = site.id_site and util.service = serv.id_service and util.societe = soci.id_societe" );
 
print "nom=$nom ";
print"<br><hr>\n";
print " <center>Liste téléphonique triée par <b>site</b> </center>\n";
print"<br><hr><br>\n";
print "<table border=1  table bordercolor=blue width=800  height=20>\n";
print "<TR>\n" ;
print "
 
 <TD width=100>Nom</TD>\n
 <TD width=80>Prénom</TD>\n
 <TD width=160>Fonction</TD>\n
 <TD width=40>Tél</TD>\n
 <TD width=80>Site</TD>\n
 <TD width=100>Société</TD>\n
 <TD width=120>Service</TD>\n
 <TD width=200>Mail</TD>\n";
 
    print "</TR>\n";
 
while($row = mysql_fetch_array($sql_results))
{ print "<table border=1  table bordercolor=green width=800  height=20>\n";
     
 print "<TR>\n" ;
 print "
 
 <TD width=100>".$row['nom']. "</TD>\n
 <TD width=80>".$row['prenom']. "</TD>\n
 <TD width=160>".$row['fonction']. "</TD>\n
 <TD width=40>".$row['telephone']. "</TD>\n
 <TD width=80>".$row['site']. "</TD>\n
 <TD width=100>".$row['societe']. "</TD>\n
 <TD width=120>".$row['service']. "</TD>\n
 <TD width=200>".$row['mail']. "</TD>\n";
 
    print "</TR>\n";
}  
 mysql_close();
     
?>
 
 
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp\www\reponsesite.php on line 36
j ai mit en grasla ligne
 
pour info $nom renvoie lisses


Message édité par sakuraba le 06-12-2002 à 14:27:55
Reply

Marsh Posté le 06-12-2002 à 14:26:35    

sakuraba a écrit :


...
    $result=mysql_query("select util.nom as 'nom',util.prenom as 'prenom',util.fonction as 'fonction',site.nom as 'site',serv.nom as 'service',soci.nom as 'societe' from utilisateurs util,site,service serv,societe soci where util.site = site.id_site and util.service = serv.id_service and util.societe = soci.id_societe" );
...
 
while($row = mysql_fetch_array($sql_results))
?>
 


 
Tu vois pas comme un problème ?


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 06-12-2002 à 14:28:29    

j ai rectifié ca marche pas

Reply

Marsh Posté le 06-12-2002 à 14:28:49    

while($row = mysql_fetch_array($sql_results))
 
un petit effort
 
...
 
while($row = mysql_fetch_array($result))


Message édité par beleg le 06-12-2002 à 14:29:09
Reply

Marsh Posté le 06-12-2002 à 14:31:54    

j ai corrigé aussi marche toujours pas

Reply

Marsh Posté le 06-12-2002 à 14:33:21    

sakuraba a écrit :

j ai rectifié ca marche pas  


 
Eh ba fous un if($sql_results==null) echo mysql_error(); et pis vala.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 06-12-2002 à 14:34:04    

ca fait plus un tableau apres

Reply

Marsh Posté le 06-12-2002 à 14:34:04   

Reply

Marsh Posté le 06-12-2002 à 14:34:47    

Champ 'util.site' inconnu dans where clause

Reply

Marsh Posté le 06-12-2002 à 14:35:40    

Là, c'est ta structure de données qui cloche non? :??:

Reply

Marsh Posté le 06-12-2002 à 14:36:41    

je vois pas le probleme la  :??:

Reply

Marsh Posté le 06-12-2002 à 14:36:55    

sakuraba a écrit :

Champ 'util.site' inconnu dans where clause


 
Eh ba c'est qu'il y a un problème dans ta base ou dans ta requête, ch'ais pas, j'connais pas la structure de ta base. Teste ta requête direct dans phpMyAdmin ou en ligne de commande dans mysql et pis tu verras ce qui se passe.
 
EDIT : [:grilled] par Fred :D


Message édité par Taiche le 06-12-2002 à 14:37:23

---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 06-12-2002 à 14:37:40    

ok j essaye

Reply

Marsh Posté le 06-12-2002 à 14:39:31    

mes champs c est id_site,id_service et id_societe
j ai un grain je crois

Reply

Marsh Posté le 06-12-2002 à 14:42:38    

la requete c est :
 
 
select util.nom as 'nom',util.prenom as 'prenom',util.fonction as 'fonction',site.nom as 'site',serv.nom as 'service',soci.nom as 'societe' from utilisateurs util,site,service serv,societe soci where util.id_site = site.id_site and util.id_service = serv.id_service and util.id_societe = soci.id_societe
 
voila ca marche

Reply

Marsh Posté le 06-12-2002 à 14:43:27    

Là, forcément, c'est plus simple.
 
Tu as compris le système des jointures?

Reply

Marsh Posté le 06-12-2002 à 15:14:13    

oui merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed