PHP-Liste déroulante + formulaire
JBennn
Messages postés
92
Date d'inscription
Statut
Membre
Dernière intervention
-
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un formulaire pour ajouter un film
Les données doivent s'enregistrer dans la table films
J'ai aussi une table "genre" que je génère grace a une liste deroulante dans le formulaire
mais je n'arrive pas à enregistrer un film dans la table .. a cause du "genre"
Dans la table films j'ai un champ : idGenre
et la table genre a deux champs : idGenre et libelleGenre
Pouvez-vous m'aider svp ?
Voici mon code :
J'ai un formulaire pour ajouter un film
Les données doivent s'enregistrer dans la table films
J'ai aussi une table "genre" que je génère grace a une liste deroulante dans le formulaire
mais je n'arrive pas à enregistrer un film dans la table .. a cause du "genre"
Dans la table films j'ai un champ : idGenre
et la table genre a deux champs : idGenre et libelleGenre
Pouvez-vous m'aider svp ?
Voici mon code :
<?php include ("header.php");?> <form method="post" action="" id="formfilm" enctype="multipart/form-data"> <label for="Titre">Titre :</label><input type="text" name="Titre"/><br/><br/> <label for="Anneesortie">Année de sortie :</label><input type="text" name="Anneesortie"/><br/><br/> <label for="Realisateur">Réalisateur :</label><input type="text" name="Realisateur"/><br/><br/> <label for="Acteur">Acteurs/Actrices :</label><input type="text" name="Acteur"/><br/><br/> <label for="Nationalite">Nationalité :</label><input type="text" name="Nationalite"/><br/><br/> <label for="Resume">Résumé :</label><input type="text" name="Resume"/><br/><br/> <label for="ImgAffiche">Affiche :</label><input type="file" name="ImgAffiche"/><br/><br/> <label for="UrlBA">Url Bande annonce :</label><input type="text" name="UrlBA"/><br/><br/> <label for="Genre">Genre :</label><select name="genre"> <?php $MonSql="SELECT libelleGenre FROM genre ORDER BY libelleGenre ASC"; $resultat=mysql_query($MonSql) or die (mysql_error()); while ($donnees=mysql_fetch_array($resultat)){ $libelleGenre=$donnees['libelleGenre']; ?> <option value="<?php echo $donnees['libelleGenre'];?>" <?php if(isset($_POST['genre'])) { if ($_POST['genre']==$donnees['libelleGenre']){?> selected="selected" <?php } } ?>><?php echo $donnees['libelleGenre'];?></option> <?php } ?> </select><br/><br/> <input type="submit" value="Envoyer"/> </form><br/><br/> <a style="color:black; margin-left:428px; background-color:white;border:solid 1px #710B0B;border-radius:10px;padding:10px;" href="gestionfilms.php">Retour à l'accueil</a><br/> <?php if (isset($_POST['Titre']) && isset($_FILES['ImgAffiche'])){ if($_POST['Titre'] != "" && $_POST['Anneesortie'] != "" && $_POST['Realisateur'] != "" && $_POST['Acteur'] != "" && $_POST['Nationalite'] != "" && $_POST['Resume'] != "" && $_FILES['ImgAffiche'] != "" && $_POST['UrlBA'] != "" && $_POST['genre']) { $Titre=$_POST["Titre"]; $Anneesortie=$_POST["Anneesortie"]; $Realisateur=$_POST['Realisateur']; $Acteur=$_POST['Acteur']; $Nationalite=$_POST['Nationalite']; $Resume=$_POST['Resume']; $ImgAffiche=$_FILES['ImgAffiche']; $UrlBA=$_POST['UrlBA']; $genre=$_POST['genre']; $db=mysql_connect("localhost","root","")or die("Erreur de connexion au serveur"); mysql_select_db("gestionf",$db)or die ("Erreur de connexion à la base gestionf"); // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur if (isset($_FILES['ImgAffiche']) AND $_FILES['ImgAffiche']['error'] == 0) { // Testons si le fichier n'est pas trop gros if ($_FILES['ImgAffiche']['size'] <= 1000000) { // Testons si l'extension est autorisée $infosfichier = pathinfo($_FILES['ImgAffiche']['name']); $extension_upload = $infosfichier['extension']; $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png'); if (in_array($extension_upload, $extensions_autorisees)) { // On peut valider le fichier et le stocker définitivement move_uploaded_file($_FILES['ImgAffiche']['tmp_name'], 'img/' . basename($_FILES['ImgAffiche']['name'])); echo "L'envoi a bien été effectué !"; print_r($ImgAffiche); } } } $MonSql4="INSERT INTO films(Titre, Anneesortie, Realisateur, Acteur, Nationalite, Resume, ImgAffiche, UrlBA, genre) VALUES('$Titre','$Anneesortie','$Realisateur','$Acteur','$Nationalite','$Resume','{$_FILES['ImgAffiche']['name']}','$UrlBA','$genre')"; mysql_query($MonSql4) or die (mysql_error()); echo "<p style=\"color:black;\">ok"; mysql_close($db); } } ?> <?php include ("footer.php");?>
A voir également:
- PHP-Liste déroulante + formulaire
- Liste déroulante excel - Guide
- Whatsapp formulaire opposition - Guide
- Liste déroulante en cascade - Guide
- Formulaire de réclamation facebook - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
3 réponses
si tu veux réutilser des valeurs postées lors du réaffichage du formulaire, il faut mettre la partie php de traitement AVANT le formulaire, ensuite si tu veux enregistret l'idGenre, c'est cette valeur qui faut mettre dans value= de <option:
<?php include ("header.php");?> <?php if (isset($_POST['Titre']) && isset($_FILES['ImgAffiche'])){ if($_POST['Titre'] != "" && $_POST['Anneesortie'] != "" && $_POST['Realisateur'] != "" && $_POST['Acteur'] != "" && $_POST['Nationalite'] != "" && $_POST['Resume'] != "" && $_FILES['ImgAffiche'] != "" && $_POST['UrlBA'] != "" && $_POST['genre']) { $Titre=$_POST["Titre"]; $Anneesortie=$_POST["Anneesortie"]; $Realisateur=$_POST['Realisateur']; $Acteur=$_POST['Acteur']; $Nationalite=$_POST['Nationalite']; $Resume=$_POST['Resume']; $ImgAffiche=$_FILES['ImgAffiche']; $UrlBA=$_POST['UrlBA']; $genre=$_POST['genre']; $db=mysql_connect("localhost","root","")or die("Erreur de connexion au serveur"); mysql_select_db("gestionf",$db)or die ("Erreur de connexion à la base gestionf"); // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur if (isset($_FILES['ImgAffiche']) AND $_FILES['ImgAffiche']['error'] == 0) { // Testons si le fichier n'est pas trop gros if ($_FILES['ImgAffiche']['size'] <= 1000000) { // Testons si l'extension est autorisée $infosfichier = pathinfo($_FILES['ImgAffiche']['name']); $extension_upload = $infosfichier['extension']; $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png'); if (in_array($extension_upload, $extensions_autorisees)) { // On peut valider le fichier et le stocker définitivement move_uploaded_file($_FILES['ImgAffiche']['tmp_name'], 'img/' . basename($_FILES['ImgAffiche']['name'])); echo "L'envoi a bien été effectué !"; print_r($ImgAffiche); } } } $MonSql4="INSERT INTO films(Titre, Anneesortie, Realisateur, Acteur, Nationalite, Resume, ImgAffiche, UrlBA, genre) VALUES('$Titre','$Anneesortie','$Realisateur','$Acteur','$Nationalite','$Resume','{$_FILES['ImgAffiche']['name']}','$UrlBA','$genre')"; mysql_query($MonSql4) or die (mysql_error()); echo "<p style=\"color:black;\">ok"; mysql_close($db); } } ?> <form method="post" action="" id="formfilm" enctype="multipart/form-data"> <label for="Titre">Titre :</label><input type="text" name="Titre"/><br/><br/> <label for="Anneesortie">Année de sortie :</label><input type="text" name="Anneesortie"/><br/><br/> <label for="Realisateur">Réalisateur :</label><input type="text" name="Realisateur"/><br/><br/> <label for="Acteur">Acteurs/Actrices :</label><input type="text" name="Acteur"/><br/><br/> <label for="Nationalite">Nationalité :</label><input type="text" name="Nationalite"/><br/><br/> <label for="Resume">Résumé :</label><input type="text" name="Resume"/><br/><br/> <label for="ImgAffiche">Affiche :</label><input type="file" name="ImgAffiche"/><br/><br/> <label for="UrlBA">Url Bande annonce :</label><input type="text" name="UrlBA"/><br/><br/> <label for="Genre">Genre :</label><select name="genre"> <?php $MonSql="SELECT * FROM genre ORDER BY libelleGenre ASC"; $resultat=mysql_query($MonSql) or die (mysql_error()); while ($donnees=mysql_fetch_array($resultat)){ //$libelleGenre=$donnees['libelleGenre']; tu ne t'en sert pas apparemment ?> <option value="<?php echo $donnees['idGenre'];?>" <?php if(isset($_POST['genre'])) { if ($_POST['genre']==$donnees['idGenre']){?> selected="selected" <?php } } ?>><?php echo $donnees['libelleGenre'];?></option> <?php } ?> </select><br/><br/> <input type="submit" value="Envoyer"/> </form><br/><br/> <a style="color:black; margin-left:428px; background-color:white;border:solid 1px #710B0B;border-radius:10px;padding:10px;" href="gestionfilms.php">Retour à l'accueil</a><br/> <?php include ("footer.php");?>
tu n'as pas compris quoi exactement:
<?php include ("header.php");?> <?php ///// ---------- c'est cette partie la qui doit etre avant la partie formulaire ---- ////// if (isset($_POST['Titre']) && isset($_FILES['ImgAffiche'])){ if($_POST['Titre'] != "" && $_POST['Anneesortie'] != "" && $_POST['Realisateur'] != "" && $_POST['Acteur'] != "" && $_POST['Nationalite'] != "" && $_POST['Resume'] != "" && $_FILES['ImgAffiche'] != "" && $_POST['UrlBA'] != "" && $_POST['genre']) { $Titre=$_POST["Titre"]; $Anneesortie=$_POST["Anneesortie"]; $Realisateur=$_POST['Realisateur']; $Acteur=$_POST['Acteur']; $Nationalite=$_POST['Nationalite']; $Resume=$_POST['Resume']; $ImgAffiche=$_FILES['ImgAffiche']; $UrlBA=$_POST['UrlBA']; $genre=$_POST['genre']; $db=mysql_connect("localhost","root","")or die("Erreur de connexion au serveur"); mysql_select_db("gestionf",$db)or die ("Erreur de connexion à la base gestionf"); // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur if (isset($_FILES['ImgAffiche']) AND $_FILES['ImgAffiche']['error'] == 0) { // Testons si le fichier n'est pas trop gros if ($_FILES['ImgAffiche']['size'] <= 1000000) { // Testons si l'extension est autorisée $infosfichier = pathinfo($_FILES['ImgAffiche']['name']); $extension_upload = $infosfichier['extension']; $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png'); if (in_array($extension_upload, $extensions_autorisees)) { // On peut valider le fichier et le stocker définitivement move_uploaded_file($_FILES['ImgAffiche']['tmp_name'], 'img/' . basename($_FILES['ImgAffiche']['name'])); echo "L'envoi a bien été effectué !"; print_r($ImgAffiche); } } } $MonSql4="INSERT INTO films(Titre, Anneesortie, Realisateur, Acteur, Nationalite, Resume, ImgAffiche, UrlBA, genre) VALUES('$Titre','$Anneesortie','$Realisateur','$Acteur','$Nationalite','$Resume','{$_FILES['ImgAffiche']['name']}','$UrlBA','$genre')"; mysql_query($MonSql4) or die (mysql_error()); echo "<p style=\"color:black;\">ok"; mysql_close($db); } } /// -------------------------------------------------------- //// // deplus si tu veux dans ta BDD enregistrer idGenre, il faut que dans ta liste déroulante tu mettes // <option value="<?php echo $donnees['idGenre']; etc.... // car c'est cette valeur qui est reçue dans $_POST['genre'] ?> <form method="post" action="" id="formfilm" enctype="multipart/form-data"> <label for="Titre">Titre :</label><input type="text" name="Titre"/><br/><br/> <label for="Anneesortie">Année de sortie :</label><input type="text" name="Anneesortie"/><br/><br/> <label for="Realisateur">Réalisateur :</label><input type="text" name="Realisateur"/><br/><br/> <label for="Acteur">Acteurs/Actrices :</label><input type="text" name="Acteur"/><br/><br/> <label for="Nationalite">Nationalité :</label><input type="text" name="Nationalite"/><br/><br/> <label for="Resume">Résumé :</label><input type="text" name="Resume"/><br/><br/> <label for="ImgAffiche">Affiche :</label><input type="file" name="ImgAffiche"/><br/><br/> <label for="UrlBA">Url Bande annonce :</label><input type="text" name="UrlBA"/><br/><br/> <label for="Genre">Genre :</label><select name="genre"> <?php $MonSql="SELECT * FROM genre ORDER BY libelleGenre ASC"; $resultat=mysql_query($MonSql) or die (mysql_error()); while ($donnees=mysql_fetch_array($resultat)){ //$libelleGenre=$donnees['libelleGenre']; tu ne t'en sert pas apparemment ?> <option value="<?php echo $donnees['idGenre'];?>" <?php if(isset($_POST['genre'])) { if ($_POST['genre']==$donnees['idGenre']){?> selected="selected" <?php } } ?>><?php echo $donnees['libelleGenre'];?></option> <?php } ?> </select><br/><br/> <input type="submit" value="Envoyer"/> </form><br/><br/> <a style="color:black; margin-left:428px; background-color:white;border:solid 1px #710B0B;border-radius:10px;padding:10px;" href="gestionfilms.php">Retour à l'accueil</a><br/> <?php include ("footer.php");?>