PHP-Liste déroulante + formulaire

JBennn Messages postés 107 Statut Membre -  
Alain_42 Messages postés 5413 Statut Membre -
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");?>


3 réponses

Alain_42 Messages postés 5413 Statut Membre 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 107 Statut Membre 1
 
Je n'ai pas compris alain, peux-tu m'expliquer stp ?
0
Alain_42 Messages postés 5413 Statut Membre 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