Bonjour,

En suivant l'exemple du livre "Introduction à MySQL et PHP" de Philippe Rigaux, j'ai créé un formulaire d'insertion de films dans une table de MySQL nommée FilmComplet. Chaque film pouvant appartenir à plusieurs genres, le formulaire contient une checkbox avec name='genre[]', le champ correspondant de la table MySQL est de type "SET" et le script PHP lancé depuis le formulaire (repris du livre) contient le morceau de code ci-dessous :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
//Préparation de la chaîne pour l'insertion
$chaine_genre = ""; $separateur = "";
for ($i = 0 ; $i < count($genre) ; $i++)
	{
	$chaine_genre = $separateur . $genre[$i];
	$separateur = ",";
	}
 
echo "Genres : $chaine_genre<br/>";
echo "Résumé = $resume<br/>\n";
echo "Mis en scène par $prenom $nom\n";
 
// Connexion à la base et création de la commande SQL
if (isSet($_POST['inserer']))
	$requete = "INSERT INTO FilmComplet (titre, annee, prenom_realisateur, nom_realisateur, annee_naissance, pays, genre, resume)
				VALUES ('$titre', $annee, '$prenom', '$nom', $annee_naissance, '$pays', '$chaine_genre', '$resume') ";
Quand je demande un affichage de toute la variable $_POST par "echo print_r($_POST);", je vois bien que le tableau des genres sélectionnés dans le formulaire est passé dans la variable mais quand j'affiche l'enregistrement de la table dans PHP MyAdmin, il n'y a aucune valeur dans le champ genre alors que toutes les valeurs des autres champs de l'enregistrement sont bien passées dans la table, elles !

Quelqu'un peut-il m'aider à comprendre pourquoi le champ "genre" de ma table MySQL ne reçoit pas le tableau des genres sélectionnés dans le formulaire et passés dans la variable *_POST ?

Merci d'avance.