Je suis confronté a un problème que je ne comprends pas... Je dois avoir louper une information dans la doc ou quelque chose comme ça.
J'utilise du PDO et des procédures stockées. Je construits un formulaire avec deux combo-box qui sont alimentée par le contenu de ma base de données.
Le script de connexion ;
function ouvreConnexion ()
{
//Information de connexion
define('USERNAME','root');
define('PW','');
define('DSN','mysql:host=localhost;dbname=garage');
try {
$conn = new PDO(DSN,USERNAME,PW);
} catch (PDOException $e) {
print "Erreur !: " . $e->getMessage() . "<br/>";
die();
}
//Retourne la connexion active
return $conn;
}
Le script avec le formulaire, j'ai juste mis la partie qui pose problème. echo '<p>';
echo '<label for="client" class="oblig">*Client : </lable>';
echo '<select name="client" id="client" tabindex="1">';
echo '<option value=""></option>';
//Lancement de procédure stockée pour avoir les villes.
try{
$stmt = $conn->prepare("CALL AllClient()");
}
catch(Exception $e) {
echo $e->getMessage();
}
$stmt->execute();
//On récupére le résultat et on affiche un message en fonction de celui-ci
$result = $stmt->fetchAll(PDO::FETCH_BOTH);
foreach($result as $row)
{
echo '<option value="'.$row[0].'">'.$row[1].' '.$row[2].'</option>';
}
echo'</select>';
echo '</p>';
echo '<p>';
echo '<label for="Constructeur" class="oblig">*Constructeur : </lable>';
echo '<select name="Constructeur" id="Constructeur" tabindex="1">';
echo '<option value=""></option>';
//Lancement de procédure stockée pour avoir les villes.
try{
$stmt = $conn->prepare("CALL AllConstructeur()");
}
catch(Exception $e) {
echo $e->getMessage();
}
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_BOTH);
print_r($result);
foreach($result as $row)
{
echo '<option value="'.$row[0].'">'.$row[1].'</option>';
}
echo'</select>';
echo '</p>';
Le premier Combo-box (client)est bien remplis avec les données mais le second (constructeur) est vide. Si j'inverse les deux, la combo-box constructeur est bien remplie mais plus l'autre.J'ai loupé quoi ?
D'avance, merci.
Cerbère.