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   -
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 :

<?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:

3 réponses

Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
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");?>
0
JBennn Messages postés 92 Date d'inscription   Statut Membre Dernière intervention   1
 
Je n'ai pas compris alain, peux-tu m'expliquer stp ?
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
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");?>
0