Modérateur PHPfrance |
6373 Messages
20 juil. 2005, 23:16
pourquoi est-ce que tu fais ça :
$mode = $_POST['mode'];
puis ça :
// vérifions que la variable a été transmise
$tabmode = (isset($_POST['mode']))?$_POST['mode']:null;
c'est une répétition
et donc $mode est un tableau
echo "Voici les modes que vous avez choisi :<br>";
// bouclons sur le tableau qui a été transmis et affichons les valeurs sélectionnées
if (!empty($tabmode)) {
foreach($tabmode as $cle => $mode) {
echo $cle.' : '.$mode.'<br>';
}
}
c'est bien, tu boucles sur le tableau et tu les affiches, c'est comme dans l'exemple
mais toi tu veux insérer une ligne dans la table pour chaque valeur ! donc c'est dans la boucle foreach que tu dois faire ta requête !
voici le code corrigé, qui devrait marcher. Lis les commentaires aussi.
$nom = $_POST['nom'];
$mois = $_POST['mois'];
$dmois = $_POST['dmois'];
$bande = $_POST['bande'];
$report = $_POST['report'];
$lien = $_POST['lien'];
$info = $_POST['info'];
// vérifions que la variable a été transmise --> tu pourrais faire ce test pour les autres variables aussi
$tabMode = (isset($_POST['mode']))?$_POST['mode']:null;
// connexion
mysql_connect("localhost","root","") or die ("Impossible de se connecter à MySQL");
// sélection de la base
mysql_select_db("cconcours") or die("Impossible de sélectionner la base de données");
// requête d'enregistrement du concours : sépare les variables du reste de la chaine
$query_string="INSERT INTO concours (nom, mois, dmois, report, lien, info) VALUES ('".$nom."', '".$mois."', '".$dmois."', '".$report."', '".$lien."', '".$info."')";
// enregistrement du concours
$query=mysql_query($query_string);
// récupération de l'identifiant attribué à ce nouveau concours
$id_concours = mysql_insert_id();
// on boucle sur le tableau de mode pour récupérer chaque identifiant de mode choisi et insérer une ligne dans concours_mode pour chacun
if (!empty($tabMode)) {
foreach($tabMode as $cle => $idMode) {
// création de la requête de liaison
$query_string="INSERT INTO concours_mode (id_concours, id_mode) VALUES ('".$id_concours."', '".$idMode."')";
// insertion de la ligne dans la table concours_mode
$query=mysql_query($query_string) or die(mysql_error());
}
}
et dans mon exemple la partie "insertion dans une base de données" ne manque pas car ce n'est pas le sujet, c'est un petit exemple pour récupérer les valeurs de cases à cocher, rien de plus
