Multi requetes - Apprendre-PHP.com

Rechercher
Anaska - Spécialiste des formations Open-Source

Multi requetes

Par paintbox -  2 reponses -  Le 06/10/2010 -  Flux RSS - 

Bonjour,

 

voici mon nouveau problème.

 

j'ai sur une page,  2 requetes qui interrogent l'une plusieurs tables (d'une BD Mysql) et l'autre 1 seule. Cette page récupère dans une variable (=$selected_vehicule), l'id de la voiture passé en GET. Cette variable est utilisé dans les 2 requetes pour trouver le véhicule recherché.

 

Tel quel, cela ne fonctionne pas. Par contre si j'attribue moi même une valeur à cette variable, cela fonctionne. Idem, si je regroupe mes 2 requetes en 1 seule, cela fonctionne également et dans ce cas, la valeur de la variable est bien récupérée en $_GET, je ne dois pas imposer une valeur.

J'ai également testé mes requetes dans PHPMyAdmin et ça fonctionne.

 

Je n'y comprend rien… j'ai pensé à utiliser une variable de session mais cela ne change rien.

 

Quelqu'un peut-il me donner une explication à cela?

Merci de votre aide

 

Voici mon code :

 

<?php
$selected_vehicule=$_GET['id_vehicule'];
//Debut des requestes
$sql_fiche=mysql_query("SELECT vehicule.id_vehicule, vehicule.code_marque, vehicule.code_model, vehicule.code_carburant, vehicule.code_annee, vehicule.kilometre, vehicule.prix_vente_TVA, vehicule.code_type, DATE_FORMAT(vehicule.immatriculation, '%d/%m/%Y') as immatriculation, vehicule.cm3,vehicule.code_trans, vehicule.code_couleur,
marque.code_marque, marque.marque,
model.code_model, model.model,
type.type,type.code_type,
carburant.code_carburant, carburant.carburant,
images.id_vehicule, images.chemin_image,
transmission.code_trans, transmission.transmission,
couleur.code_couleur, couleur.couleur
FROM vehicule
INNER JOIN marque ON vehicule.code_marque=marque.code_marque
INNER JOIN model ON vehicule.code_model=model.code_model
INNER JOIN type ON vehicule.code_type=type.code_type
INNER JOIN carburant ON vehicule.code_carburant=carburant.code_carburant
INNER JOIN images ON vehicule.id_vehicule=images.id_vehicule
INNER JOIN transmission ON vehicule.code_trans=transmission.code_trans
INNER JOIN couleur ON vehicule.code_couleur=couleur.code_couleur
WHERE vehicule.id_vehicule='.$selected_vehicule.'");
$donnees_fiche =mysql_fetch_assoc($sql_fiche);
?>
<div id="contenu">
<?php $previous_page=$_SERVER['HTTP_REFERER']; ?>
<p id="return"><a href='<?php echo $previous_page; ?>'>Retour à la page précédente</a></p>
<div class="cadre-fiche">
<div id="cadre-fiche-resume">
<table class="table-vehicule">
<th class="black" colspan="2">Véhicule n° <?php echo $selected_vehicule ?> - <?php echo $donnees_fiche['marque']; echo '<span> - </span>'.$donnees_fiche['model']; ?></th>
<tr>
<td class="descriptif-tableau" width="30%">Type :</td>
<td width="70%"><span><?php echo $donnees_fiche['type']; ?></span></td>
</tr>
<tr>
<td class="descriptif-tableau" width="30%">Carburant :</td>
<td width="70%"><span><?php echo $donnees_fiche['carburant']; ?></span></td>
</tr>
<tr>
<td class="descriptif-tableau" width="30%">Cylindrée :</td>
<td width="65%"><span><?php echo $donnees_fiche['cm3']; ?> cc</span></td>
</tr>
<tr>
<td class="descriptif-tableau" width="30%">Transmission :</td>
<td width="65%"><span><?php echo $donnees_fiche['transmission']; ?></span></td>
</tr>
<tr>
<td class="descriptif-tableau" width="30%">Kilométrage :</td>
<td width="65%"><span><?php echo number_format($donnees_fiche['kilometre'], 0, ',','.'); ?> Km</span></td>
</tr>
<tr>
<td class="descriptif-tableau" width="30%">Immatriculation :</td>
<td width="65%"><span><?php echo $donnees_fiche['immatriculation']; ?></span></td>
</tr>
<tr>
<td class="descriptif-tableau" width="30%">Prix de vente : </td>
<td width="65%"><span id="prix"><?php echo number_format($donnees_fiche['prix_vente_TVA'], 2, ',',' '); ?> €</span></td>
</tr>
</table>
</div><!-- Fin de #cadre-fiche-resume -->
<div id="cadre-fiche-photo">
<img src="<?php echo $donnees_fiche['chemin_image']; ?>" alt="v796p3" width="236" height="212" />
</div><!-- Fin de #cadre-fiche-photo -->
<div id="contact-vendeur">Contacter le vendeur</div>
<div class="fiche-description">
<?php
$sql_options =mysql_query("SELECT * FROM options WHERE id_vehicule='.$selected_vehicule.'");
$donnees_options =mysql_fetch_assoc($sql_options);
?>
<h3 id="black">Description du Véhicule <?php echo $donnees_options['id_vehicule']; ?></h3>
<table id="table-desc-moteur">
<th colspan="2" align="left">Moteur</th>
<tr>
<td class="black" width="55%">Boîte de vitesse: </td>
<td class="black" width="45%"><?php echo $donnees_options['boite_vitesse']; ?></td>
</tr>
<tr>
<td class="black" width="55%">Puissance :</td>
<td class="black" width="45%"><?php echo $donnees_options['puissance']; ?> CV</td>
</tr>
<tr>
<td class="black" width="55%">Puissance fiscale:</td>
<td class="black" width="45%"><?php echo $donnees_options['puis_fiscale']; ?></td>
</tr>
<tr>
<td class="black" width="55%">Consommation : </td>
<td class="black" width="45%"><?php echo $donnees_options['consommation']; ?> L/ 100 Km</td>
</tr>
<tr>
<td class="black" width="55%">Emission CO2 : </td>
<td class="black" width="45%"><?php echo $donnees_options['co2']; ?> grm/Km</td>
</tr>
 
</table> <!-- FIN TABLE DESC-MOTEUR-->
<table id="table-desc">
<th colspan="2" align="left">Véhicule</th>
<tr>
<td class="black" width="60%">Nombre de portes : </td>
<td class="black" >5</td>
</tr>
<tr>
<td class="black" width="60%">Nombre de places :</td>
<td class="black"><?php echo $donnees_options['place']; ?></td>
</tr>
<tr>
<td class="black" width="60%">Airbag conducteur :</td>
<td class="black"><?php echo $donnees_options['airbag_cond']=='1' ? 'Oui': 'Non'; ?></td>
</tr>
<tr>
<td class="black" width="60%">Airbag passager :</td>
<td class="black"><?php echo $donnees_options['airbag_passager']=='1' ? 'Oui': 'Non'; ?></td>
</tr>
<tr>
<td class="black" width="60%">Airbags latéraux :</td>
<td class="black"><?php echo $donnees_options['airbag_lateraux']=='1' ? 'Oui': 'Non'; ?></td>
</tr>
<tr>
<td class="black" width="60%">Carnet d'entretien :</td>
<td class="black"><?php
echo $donnees_options['carnet']=='1' ? 'Oui': 'Non'; ?></td>
</tr>
<tr>
<td class="black" width="65%">Nombre de propriétaire : </td>
<td class="black"><?php echo $donnees_options['proprio']; ?></td>
</tr>
</table>
<table id="table-desc2">
<th colspan="2" align="left">Couleur</th>
<tr>
<td class="black" width="60%">Couleur Extérieure : </td>
<td class="black" ><?php echo $donnees_options['couleur']; ?></td>
</tr>
<tr>
<td class="black" width="60%">Couleur intérieure :</td>
<td class="black">6</td>
</tr>
<tr>
<td class="black" width="60%">Revêtemnt intérieur :</td>
<td class="black">OUI</td>
</tr>
</table>
<br />
<div class="equipement">
<h3 id="black">Equipement</h3>
<ul class="col-gauche"><p><b>Intérieur</b></p>
<?php echo $donnees_options['alarme']=='1' ? '<li>Alarme</li>' : null;?>
<?php echo $donnees_options['gps']=='1' ? '<li>GPS</li>' : null;?>
<?php echo $donnees_options['cd']=='1' ? '<li>Lecteur CD</li>' : null;?>
<?php echo $donnees_options['porte_bagage']=='1' ? '<li>Porte-bagage</li>' : null;?>
<?php echo $donnees_options['ordi']=='1' ? '<li>Ordinateur de bord</li>' : null;?>
<?php echo $donnees_options['park_assist']=='1' ? '<li>Park Assist</li>' : null;?>
<?php echo $donnees_options['jantes']=='1' ? '<li>Jantes alliage</li>' : null;?>
<?php echo $donnees_options['phares_xenon']=='1' ? '<li>Phares au Xenon</li>' : null;?>
<?php echo $donnees_options['toit']=='1' ? '<li>Toit ouvrant</li>' : null;?>
</ul>
<ul class="col-centre"><p><b>Extérieur</b></p>
<?php echo $donnees_options['brouillard_avant']=='1' ? '<li>Phares anti-brouillard avant</li>' : null;?>
<?php echo $donnees_options['retro_elec']=='1' ? '<li>Rétroviseurs électriques</li>' : null;?>
<?php echo $donnees_options['vitre_teinte']=='1' ? '<li>Vitres teintées</li>' : null;?>
<?php echo $donnees_options['vitre_elec']=='1' ? '<li>Vitres électriques</li>' : null;?>
<?php echo $donnees_options['couleur_metal']=='1' ? '<li>Couleur métalisée</li>' : null;?>
</ul>
 
</div> <!-- Fin de .equipement 1-->
<br />
<br />
<div>
<div class="equipement">
<h3 id="black">Sécurité et confort</h3>
<ul class="col-gauche"><p><b>Sécurité</b></p>
<?php echo $donnees_options['abs']=='1' ? '<li>ABS</li>' : null;?>
<?php echo $donnees_options['anti_demarrage']=='1' ? '<li>Anti-demarrage</li>' : null;?>
</ul>
<ul class="col-centre"><p><b>Confort</b></p>
<?php echo $donnees_options['dir_assist']=='1' ? '<li>Direction assistée</li>' : null;?>
<?php echo $donnees_options['retro_elec']=='1' ? '<li>Rétroviseurs électriques</li>' : null;?>
<?php echo $donnees_options['climatisation']=='1' ? '<li>Climatisation</li>' : null;?>
<?php echo $donnees_options['regul_vitesse']=='1' ? '<li>Régulateur de vitesse</li>' : null;?>
</ul>
<br />
<br />
</div><!-- Fin de .equipement 2-->
</div>
</div><!-- Fin de .fiche-description -->
</div> <!-- Fin de #fiche-description -->
</div><!-- Fin de #contenu -->

 

 

 

Réponses apportées à cette discussion

Par Cyrano -  Le 06/10/2010 - 

Tu as une erreur de concaténation : tu alternes guillemets et apostrophes etdu coup la valeur envoyée à MySQL est fausse, par exemple si l'identifiant est « 24 », MySQL reçoit « .24. »

Tu as fait

  1. $requete = "SELECT ... WHERE vehicule.id_vehicule='.$selected_vehicule.'";

 

Au lieu de : 

  1. $requete = "SELECT ... WHERE vehicule.id_vehicule='".$selected_vehicule."'"

Observe bien la différence et refais un test.

Au passage, je te signale qu'une balise <th> est une cellule au même titre qu'une balise <td> et qu'à ce titre elle doit se trouver dans une ligne, donc entre des balises <tr></tr>, et accessoirement, compte bien tes balises ouvrantes <div> et compte les mêmes fermantes, tu vas voir qu'il y en a une de trop en fermeture.

 

 
Par paintbox -  Le 06/10/2010 - 

Hello Cyrano,

je suis gêné… faire de telles erreurs.  Il y a un moment où on ne voit plus les erreurs les plus évidentes.

Un regard extérieur est souvent nécessaire. J'ai bien noté pour th et mes DIV.

Merci pour ton oeil avisé ! 

Au passage j'ai appliqué tes conseils pour mes tests avec opérateur ternaire.

A+ 

 

 

 

Ajouter une réponse à la discussion

Seuls les membres loggués sont autorisés à poster dans les forums !