jointure id - idnom

Petit nouveau ! | 5 Messages

11 oct. 2012, 11:32

Bonjour à toutes et à tous,
J'ai créer une petite bdd sql avec une appli php composée de 4 tables.
J'arrive à lire les infos sur ma page php (table "report"), mais seulement les ID correspondant aux noms situés dans une autre table (table="site")
exemple de l'extraction de données : 1 | 1 | 2 | 2012-10-10 13:50:17
avec l'instruction :
$reponse = $bdd->query( 'SELECT * FROM report');

Ou est est l'id du report, 1 l'identifiant d'un site, 2 son statut (validé, en cours, ...), et ensuite la date

Que dois je faire pour que dans ma requete je puisse transcrire les ID grâce aux noms situés dans les autres tables (table site, table statut).

Après lecture d'un livre sur php / sql, de nombreux tuto etc j'ai cru comprendre qu'il fallait réaliser un jointure.

Cette jointure doit elle être faite lors d'une instruction PHP ou sur mysql ?
J'ai essayé ca sans succes :
$reponse = $bdd->query( 'SELECT idnom, idsite FROM site NATURAL JOIN idsite USING report');

Pouvez vous m'éclairez svp, je suis complétement bloqué je n'arrive plus à avancer ni à comprendre.

Un grand merci d'avance,
Mickael

ViPHP
ViPHP | 2577 Messages

11 oct. 2012, 11:43

Peut être :
select `tes colonnes` from site, report, statut where site.idreport = report.id and site.idstatut = statut.id

Petit nouveau ! | 5 Messages

11 oct. 2012, 12:06

Merci pour cette réponse Mazarini.
J'ai tenté le code mais plus rien ne s'affiche sur la page php

ViPHP
ViPHP | 2577 Messages

11 oct. 2012, 13:02

Il faut peut être adapté les noms de colonnes : site.idreport, report.id, site.idstatut et statut.id

Après la requête, il faut également vérifier la bonne exécution de la fonction mysql_query().
<?PHP
$sql = 'select...';
mysql_query($sql);
if (mysql_errno() <> 0) {
   echo mysql_error(),'<br>',$sql;         // affichage de l'erreur et de la requête
   exit;                                              // fin du script
}
?>

Mammouth du PHP | 702 Messages

11 oct. 2012, 14:42

<?php $sql="SELECT * FROM `site` INNER JOIN `report` ON `report`.`id` = `site`.`idstatut` INNER JOIN `statut` ON `site`.`idtstatut` = `statut`.`id`" : ?>