Page 1 sur 1

Probleme de syntaxe

Posté : 28 oct. 2013, 12:21
par anguetone
Bonjour chers amis

je reviens encore pour mon application gestion des hôtels.

mon problème est je veux afficher le listes des réservations mais je n'y arrive.
j'explique: au fait j'ai 3 tables liées la table T_client, T_chambre, et T_réservation les identifiant client et chambre sont inscrits dans la table réservation après chaque validations d'une réservation et je veux afficher la liste des réservations seulement que je veux qu'à l'affichage je n'ai pas des les identifiants mais les noms et prénoms des clients et le nom des chambres.


voici mes tables:
CREATE TABLE IF NOT EXISTS `chambre` (
`id_chambre` int(11) NOT NULL AUTO_INCREMENT,
`chambre_nom` varchar(45) DEFAULT NULL,
`chambre_type` varchar(45) DEFAULT NULL,
`chambre_prix` float DEFAULT NULL,
PRIMARY KEY (`id_chambre`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;


CREATE TABLE IF NOT EXISTS `client` (
`id_client` int(11) NOT NULL AUTO_INCREMENT,
`client_npcid` varchar(45) DEFAULT NULL,
`client_nom` varchar(45) DEFAULT NULL,
`client_pren` varchar(45) DEFAULT NULL,
`client_datenais` date DEFAULT NULL,
`client_nat` varchar(45) DEFAULT NULL,
`client_tel` varchar(45) DEFAULT NULL,
`client_bp` varchar(45) DEFAULT NULL,
`client_fonct` varchar(45) NOT NULL,
`client_vilprov` varchar(45) DEFAULT NULL,
`client_vilres` varchar(45) DEFAULT NULL,
`client_raissej` varchar(45) NOT NULL,
`client_employeur` varchar(45) NOT NULL,
PRIMARY KEY (`id_client`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;


CREATE TABLE IF NOT EXISTS `reservation` (
`id_reserv` int(11) NOT NULL AUTO_INCREMENT,
`id_client` int(11) NOT NULL,
`id_chambre` int(11) NOT NULL,
`datedeb` date NOT NULL,
`datefin` date NOT NULL,
`nbre` int(11) NOT NULL,
`datenreg` date NOT NULL,
`prix` int(11) NOT NULL,
`montant` float NOT NULL,
PRIMARY KEY (`id_reserv`),
KEY `id_client` (`id_client`),
KEY `id_chambre` (`id_chambre`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;


voila le code que j'ai écrit:

$req='SELECT * FROM reservation, chambre, client WHERE(client.id_client=reservation.id_client) and (chambre.id_chambre=reservation.id_chambre) and (id_reserv=id_reserv)';
$val=mysql_fetch_row($req);

while($val)
{
$datefin=$val['datefin'];
$datedeb=$val['datedeb'];
?>

<?php echo "$val['client_nom'] $val['client_pren']";?><br/>

<?php echo"$val['chambre_nom'] $val['chambre_type']";?><br/>
<hr/>
<p>TOTAL:<?php echo $val['montant']; ?>


l'erreur est: Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\wamp\www\script\fiche.php

Merci d'avance

Re: Probleme de syntaxe

Posté : 28 oct. 2013, 13:02
par yann18
bonjour,

php t'indique exactement le numéro de la ligne ayant conduit à l'erreur syntaxique(parse error).
pour afficher des éléments d'un tableau($val[]) pas besoin des doubles quotes(") d'où l'erreur syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING. si tu tiens aux doubles quotes(") tu dois entourer le nom du tableau par des accolades({$val['client_nom']})
<?php echo "{$val['client_nom']} {$val['client_pren']}";?><br/>

<?php echo $val['chambre_nom'] $val['chambre_type'];?><br/>
<hr/>
<p>TOTAL:<?php echo $val['montant']; ?>

Re: Probleme de syntaxe

Posté : 29 oct. 2013, 10:46
par anguetone
Merci mais j'ai toujours une erreur qui est rétournée (Parse error: syntax error, unexpected $end in C:\wamp\www\script\fiche.php on line 29
)

Re: Probleme de syntaxe

Posté : 29 oct. 2013, 10:55
par damien_55
Slt,

Un conseil: utilise la coloration syntaxique. Ce sera plis clair pour tout le monde. :wink:

Pour concatener des variables, il faut faire comme ceci:
<?php echo $val['client_nom'].$val['client_pren'] ;?>
1/ Je ne comprend pas tes " aprés ton echo. Tu appelles un variable pas besoin de " ou de ' à l'affichage.

Re: Probleme de syntaxe

Posté : 29 oct. 2013, 12:16
par anguetone
re-bonjour

Au fait le but de mon exercice est d'afficher tous les reservations:
et qu'au lieu que les identifiant des chambres et clients s'affichent dans les resultats html(pages), je veux à la place afficher le nom de la chambre et le nom du client.
Merci

Re: Probleme de syntaxe

Posté : 29 oct. 2013, 15:33
par sirakawa
(Parse error: syntax error, unexpected $end in C:\wamp\www\script\fiche.php on line 29
en général, c'est une accolade fermante manquante.