Récupérer la valeur d'une variable select alimentée d'une base de données à trav

Signaler
-
 PlatypusGeek -
Bonsoir,
Je suis débutante en php:
Malgré de nombreux essais ,j'ai pas trouvé malheureusement la solution pour ce problème:
Voici mon formulaire dont j'ai un select dont la valeur du champs nom est alimentée de la table client(id,nom) de ma base de données qui contient un id et un nom.
<label for="P">Nom</label><select name="person" id="personne"> 

<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=caisse', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}



$donnees = $bdd->query('SELECT nom FROM client ORDER BY nom asc');
while($req=$donnees->fetch())
 {
   echo '<option value="name" >'.$req["nom"].'</option>
'; 
}

$donnees->closeCursor();
?>

</select>



Le problème c'est que je veux que la valeur du nom doit varier selon la valeur de l 'id sur mon formulaire.
Du coup pour remplir l'autre table-selon cette condition- appelée opération(id_op,id #clé etrangère venant de la table client# ,mouvement,motif,montant,date) à partir de ce formulaire:
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=caise', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}

$mnt=$_POST['montant'];
$mot=$_POST['motif'];
$mvt=$_POST['mouvement'];
$dd=date(1);
$req=$bdd->query('SELECT id FROM client WHERE nom=\'' . $_POST['person'] . '\'  ');
$iid=$req->fetch();
if(isset($_POST['person']) AND isset($_POST['montant']) AND isset($_POST['motif']) AND isset($_POST['mouvement']))
{
/*while($donnes=$req->fetch())
{*/
$requete = $bdd->prepare('INSERT INTO opération(id_op, id, mouvement, motif, montant, date) VALUES(:id_op, :id, :mouvement, :motif, :montant, :date)');
$requete->execute(array(
'id_op' => "",
'id' => $iid,
'mouvement' => $mvt,
'motif' => $mot,
'montant' => $mnt,
'date' => $dd
));
?>

Malheureusemnt aucune ligne n'est insérée
Si quelqu'un peut m'aider

3 réponses


La ta balise select ne peut pas fonctionner.
Il faut que les value soit différente.

Je n'ai pas trop compris ce que tu veux faire mais je dirais que pour les balise option il te faut :
<option value="'.$req["nom"].'">'.$req["nom"].'</option>

ou
<option value="'.$req["id"].'">'.$req["nom"].'</option>


Pour savori pourquoi il n'y a pas d'insertion :
Print la requete et les valeurs que tu veux insérer pour pouvoir l’exécuter directement sur la base (avec phpmyadmin ou en console suivant ce que tu utilise). La si la requête à un souci tu verras l'erreur (d'ailleur l'erreur devrait s'afficher dans php, il faut peut être voir tes réglage php sur l'affichage des erreurs)

Bonsoir VANHAYATO,
Mon problème c'est comment récupérer les valeurs du select remplies par la base de données pour les comparer avec d'autres valeurs .
Alors comment le faire ?

Désolé mais je ne vois pas ce que tu peux faire...
Pourrais-tu essayé de m'expliqué plus en détail, avec un exemple peut être ?