requete avec des jointures [php] - PHP - Programmation
Marsh Posté le 06-12-2002 à 14:04:34
un tutorial mysql devrait faire laffaire
http://www.commentcamarche.net/sql/sqljoint.php3
http://forum.hardware.fr/forum2.php3?post=16526&cat=10
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 :
|
PS : la nomenclature est déplorable, trop souvent le cas dans les énoncés d'étudiants
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
Marsh Posté le 06-12-2002 à 14:26:35
sakuraba a écrit : |
Tu vois pas comme un problème ?
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))
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.
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 : par Fred
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
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
Marsh Posté le 06-12-2002 à 14:43:27
Là, forcément, c'est plus simple.
Tu as compris le système des jointures?
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