Bonsoir à tous,
Je viens de faire ma première requête sur des tables liées.
Pourriez-vous me dire si cela vous semble correcte?
J'utilise 3 tables qui ont toutes le champs 'nom'.
Je pensais faire un mysql_fetch_array mais je n'ai pas réussi à trouver comment gérer mes noms de champs identiques.
J'ai donc utilisé mysql_fetch_object avec AS et ->
LES TABLES DE LA BASE:
table société:
id
nom
url
table categorie:
id
nom
table societe_categorie:
societe_id
categorie_id
table contact:
id contact
nom
societe_id
Le code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| $sql = "
SELECT societe.nom AS NOMSOC, categorie.nom AS NOMCAT, contact.nom AS NOMCON
FROM (societe INNER JOIN societe_categorie ON societe.id = societe_categorie.societe_id)
INNER JOIN categorie ON categorie.id = societe_categorie.categorie_id
INNER JOIN contact ON contact.societe_id=societe.id
WHERE societe.nom LIKE '$test2'";
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_object($req))
{
echo 'Nom: ';
echo $data->NOMSOC;
echo '<BR>';
echo 'Catégorie: ';
echo $data->NOMCAT;
echo '<BR>';
echo 'Contact: ';
echo $data->NOMCON;
echo '<BR><BR>';
} |
Qu'en pensez-vous?
A quoi servent les parenthèses de:
(societe INNER JOIN societe_categorie ON societe.id = societe_categorie.societe_id)
Partager