Récupération données issues de 3 tables d'une base de donnée
Posté : 18 avr. 2011, 14:04
Bonjour à tous,
Voilà, en cours jusqu'ici nous avions vu comment récupérer les données issues de deux tables composant une base de donnée.
Mais dans mon projet, j'ai 3 tables
- Clients
>idClients
.Nom
.Prenom
.RueNum
.CpLoc
- Reservations
>idReservations
.idVoyages
.idClients
.NbrPersonne
.Apayer
-Voyages
>idVoyages
.RefProduit
.Depart
En fait mon soucis est que je n'arrive pas à afficher ce qui se situe dans la table 'Voyages' autrement dit, je n'arrive pas à faire le lien entre les 3 tables de la base de données.
Je souhaite afficher sous un tableau, le nom, prénom, NbrPersonne, Apayer, RefProduit, Depart.
J'ai essayé le code suivant:
Et dans mon tabline:
Ce serait sympa de m'aider au plus vite.
Merci d'avance
Voilà, en cours jusqu'ici nous avions vu comment récupérer les données issues de deux tables composant une base de donnée.
Mais dans mon projet, j'ai 3 tables
- Clients
>idClients
.Nom
.Prenom
.RueNum
.CpLoc
- Reservations
>idReservations
.idVoyages
.idClients
.NbrPersonne
.Apayer
-Voyages
>idVoyages
.RefProduit
.Depart
En fait mon soucis est que je n'arrive pas à afficher ce qui se situe dans la table 'Voyages' autrement dit, je n'arrive pas à faire le lien entre les 3 tables de la base de données.
Je souhaite afficher sous un tableau, le nom, prénom, NbrPersonne, Apayer, RefProduit, Depart.
J'ai essayé le code suivant:
<?php
$result =mysql_query('SELECT * FROM Clients, Reservations, Voyages WHERE Clients.idClients = Reservations.idClients AND Reservations.idVoyages = Voyages.idVoyages') ;
$NbrElements=mysql_num_rows($result);
if (!isset($_GET['pos'])) //si la variable n'est pas définie alors:
{
$_GET['pos'] = 'D';
}
elseif (isset($_GET['pos']))
{
SWITCH ($_GET['pos'])
{
CASE 'D': //Début
$_SESSION['ligne'] = 0;
break; //arrêt du case
CASE 'S': //Suivant
$_SESSION['ligne'] += 10;
if ($_SESSION['ligne'] > $NbrElements - 10) $_SESSION['ligne'] = $NbrElements - 10;
break;
CASE 'P': //Précédent
$_SESSION['ligne'] -= 10;
if ($_SESSION['ligne'] < 0) $_SESSION['ligne'] = 0;
break;
CASE 'F': //Fin
$_SESSION['ligne'] = $NbrElements - 10;
break;
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content="HTML Tidy for Windows (vers 11 August 2008), see http://www.w3.org">
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title>
clients.php
</title>
</head>
<body>
<?php
include('includes/reservations/tabtop.php'); //Début du tableau (titres)
for ($i = $_SESSION['ligne']; $i <= $_SESSION['ligne'] +9; $i++)
{
mysql_data_seek($result,$i);
$lineReservations =mysql_fetch_array($result);
$idReservationsForTab = $lineReservations['idReservations'];
include('includes/reservations/tabline.php'); //corps du tableau
}
include('includes/reservations/tabbot.php'); //fin du tableau
?>
<center>
<br/>
<a href="reservations.php?pos=D"><img src="./images/btnfirst.gif"></a>
<a href="reservations.php?pos=P"><img src="./images/btnprev.gif"></a>
<a href="reservations.php?pos=S"><img src="./images/btnnext.gif"></a>
<a href="reservations.php?pos=F"><img src="./images/btnend.gif"></a>
</center>
</body>
</html>
Et dans mon tabline:
<tr>
<td style="width: 150px;"><?php echo $lineReservations['RefProduit'];?></td>
<td style="width: 150px;"><?php echo $lineReservations['Nom'];?></td>
<td style="width: 150px;"><?php echo $lineReservations['Prenom'];?></td>
<td style="width: 150px;"><?php echo $lineReservations['Apayer'];?></td>
</tr>
Ce serait sympa de m'aider au plus vite.
Merci d'avance