checkbox, SQL et boucle

Répondre
i M@N
le 02/07/2008 à 23:30
i M@N
reuh ...

Je vois plus comme ça :
<?php
/*on initialise la variable $action issue de $_GET (_CHECKBOX_test.php?action=submit)*/
if (isset($_GET['submit'])) $action = $_GET['submit']; else $action = '';
/*début du switch*/
switch($action) {
/*si $action = "submit"*/

case "submit" :
/*si une (ou plusieurs) checkbox(es) cochée(s)*/

if (isset($_POST['image'])) {

$image = $_POST['image'];

/*affiche le contenu du tableau $checkbox*/

//print_r($image);

/*on compte le nombre d'enregistrement(s) du tableau $image*/

for($i = 0;$i < count($image);$i++) {

/*si un seul enregistrement*/

if ($i == 0) {

$img = ''.$image[0];

}
/*si plusieurs enregistrements*/
else {
$img = $img.';'.$image[$i];
}

//print $image;

}

/*on insère dans la base*/
$base2 = mysql_connect('host', 'user', 'password');

mysql_select_db('base', $base);

$sql2 = "INSERT INTO 2008_test VALUES('','$type','$status','$home','$titre','$url','$texte','$img')";
mysql_query($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());

/*maintenant on affiche ce qui a été sélectionné avec les checkboxes*/
/*on compte le nombre d'enregistrement(s) du tableau $image*/

for($i = 0; $i < count($img);$i++) {

/*si un seul enregistrement*/

if ($i == 0) {
/*on affiche l'image*/

echo '<img src="./imgincfront/'.$image[0].'" />';

}
/*si plusieurs enregistrements*/
else {
/*on affiche les images*/

echo '<img src="./imgincfront/'.$image[$i].'" /><br />';
}
}
/*fin du case : "submit"*/

break;
/*case defaut, $action != "submit" => affichage du formulaire*/

default : echo '<form method="POST" action="_CHECKBOX_test.php?action=submit">
<input type="checkbox" name="image[]" value="affiche_baba.jpg">
<img src="./imgincfront/affiche_baba.jpg" width="80"><br />
<input type="checkbox" name="image[]" value="affiche_bubulle.jpg">
<img src="./imgincfront/affiche_bubulle.jpg" width="80"><br />
<input type="checkbox"name="image[]" value="affiche_cendrillon.jpg">
<img src="./imgincfront/affiche_cendrillon.jpg" width="80"><br />
<input type="submit" value="envoyer">
</form>';
/*fin du case defaut*/
break;

/*fin du if (isset($_POST['image']))*/
}
/*fin du switch*/
}

?>

Après tu peux essayer avec implode sur le $_POST['image'] comme disait Lupus c'est plus mieux.
Mais là j'ai bien commenté pour que tu vois la démarche (si j'ai bien compris ce que tu veux faire) :
- on récupère les variables
- on affiche le formulaire ou on traite les données
- on parcourt le tableau $image
- on insère en base les images séparées par des ";"
- on se ressert du tableau $image pour afficher ce qui a été coché

Après y'a x façons de faire un truc ...

@+...
One Love, One Heart, One Unity.
krma
le 02/07/2008 à 23:41
krma
Yes, c'est propre, merci! Le vrai problème, c'est que vous êtes trop fort. Et c'est tant mieux d'ailleurs..
L'homme-singe est celui qui connait ses limites
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours