Multi requetes
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.couleurFROM vehiculeINNER JOIN marque ON vehicule.code_marque=marque.code_marqueINNER JOIN model ON vehicule.code_model=model.code_modelINNER JOIN type ON vehicule.code_type=type.code_typeINNER JOIN carburant ON vehicule.code_carburant=carburant.code_carburantINNER JOIN images ON vehicule.id_vehicule=images.id_vehiculeINNER JOIN transmission ON vehicule.code_trans=transmission.code_transINNER JOIN couleur ON vehicule.code_couleur=couleur.code_couleurWHERE vehicule.id_vehicule='.$selected_vehicule.'");?><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></tr><tr><td class="descriptif-tableau" width="30%">Carburant :</td></tr><tr><td class="descriptif-tableau" width="30%">Cylindrée :</td></tr><tr><td class="descriptif-tableau" width="30%">Transmission :</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></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?><table id="table-desc-moteur"><th colspan="2" align="left">Moteur</th><tr><td class="black" width="55%">Boîte de vitesse: </td></tr><tr><td class="black" width="55%">Puissance :</td></tr><tr><td class="black" width="55%">Puissance fiscale:</td></tr><tr><td class="black" width="55%">Consommation : </td></tr><tr><td class="black" width="55%">Emission CO2 : </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></tr><tr><td class="black" width="60%">Airbag conducteur :</td></tr><tr><td class="black" width="60%">Airbag passager :</td></tr><tr><td class="black" width="60%">Airbags latéraux :</td></tr><tr><td class="black" width="60%">Carnet d'entretien :</td><td class="black"><?phpecho $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['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
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
$requete = "SELECT ... WHERE vehicule.id_vehicule='.$selected_vehicule.'";
Au lieu de :
$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.
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+
