checkbox, SQL et boucle
le 02/07/2008 à 09:37
krma
Bonjour,
alors voilà, j'ai utilisé l'article concernant les checkbox et l'insertion mySQL mais je butte sur un problème tout bête sans doute : je n'arrive pas à sortir l'insertion de la boucle. Je ne souhaite pas qu'il y ait un nouvel id créé à chaque fois que $image a plusieurs valeurs, mais que les différents noms d'image aillent tous dans le champ image de l'id concerné.
Actuellement tout marche bien, sauf que j'ai autant d'entrées créés qu'il y a de valeurs à ma variable $image.
Merci !
le wall
L'homme-singe est celui qui connait ses limites
le 02/07/2008 à 09:39
krma
oupsss, bien joué pour le nom de base et le password en clair dans le wall :(
Si une bonne âme pouvait les remplacer par des XXXX.
Désolé...
L'homme-singe est celui qui connait ses limites
le 02/07/2008 à 10:54
i M@N
Hello.
Essaye comme ça :
<?php
/*si un seul enregistrement*/
if ($i == 0) {
$image = $image[0];
/*si plusieurs enregistrements*/
else {
$image = $image.';'.$image[$i];
}
?>
@+...
One Love, One Heart, One Unity.
le 02/07/2008 à 11:55
krma
En effet, des fois on s'en veut de n'avoir pas de cerveau, merci.
Cependant, je ne sais pas ce qu'il fau mettre comme syntaxe pour $image dans l'insertion SQL. Actuellement, j'ai ça, mais ça continue de me mettre deux lignes avec un champ image comportant "Array;nom_de_ma_deuxieme_image.jpg"
<?php $sql2 = "INSERT INTO 2008_test VALUES('','$type','$status','$home','$titre','$url','$texte','".$image[$i]."')"; ?>
En clair, il faudrait que ma $image prenne (dans l'insertion)soit la valeur $image[$i] soit la valeur $image[0], mais je n'arrive pas à trouver la bonne syntaxe dans la requete...
Merci pour ton aide en tout cas!
L'homme-singe est celui qui connait ses limites
le 02/07/2008 à 12:00
krma
(suite) ce qui est logique puisque mon insertion EST dans la boucle, mais je n'arrive pas à boucler sur le $image[$si] ET à extraire la requete de la boucle. Si je sépare la requete, elle ne m'affiche que "Array" dans ma base :-(
L'homme-singe est celui qui connait ses limites
le 02/07/2008 à 12:27
i M@N
reuh ...
Tu comprends pas ...
$image vaut $image[0] si une seule checkbox, si plusieurs checkboxes $image vaut image1;image2;...;imageN
$image[$i] vaut imageN où N est la valeur de $i quand tu parcours le tableau si plusieurs checkboxes.
Tu dois seulement insérer $image dans ta base.
Si tu postais le code de la page avec les checkboxes et celui du script qui la traite ça serait plus simple aussi.
P.S : il manque un } à la fin du premier if de mon code.
@+...
One Love, One Heart, One Unity.
le 02/07/2008 à 13:15
krma
Bah si je comprend :-). J'ai mis $image[$i] en désespoir de cause pour essayer, parce que si je mets juste $image, ça insère le mot Array dans la base. Donc, je supposais que ça venait de la façon d'écrire cette variable $image dans la requete.
<?php
if (isset($_POST['image'])) {
$image = $_POST['image'];
for($i = 0;$i < count($image);$i++) {
/*si un seul enregistrement*/
if ($i == 0) {
$image==''.$image[0];
/*si plusieurs enregistrements*/
} else {
$image==';'.$image[$i];
}
$base2 = mysql_connect ('$server', '$login', '$pwd');
mysql_select_db ('$base', $base2) ;
$sql2 = "INSERT INTO 2008_test VALUES('','$type','$status','$home','$titre','$url','$texte','$image')";
mysql_query($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());
echo '<img src=../imgincfront/'.$image[$i].'>';
}
}
?>
Ce code là, qui est celui de ma page traitant les données, insère juste Array dans le champ $image... Comme si les deux valeurs possible de $image[0] ou [$i] n'étaient pas récupérées...
L'homme-singe est celui qui connait ses limites
krma, j'ai modifié le wall dès que j'ai lu ton sujet.
J'espère que personne n'aura "tilté" :/
le 02/07/2008 à 14:12
krma
Merci loll. Je suis en dessous de tout mais je ne poste plus très souvent, les bonnes habitudes foutent le camp.
Par hasard, t'as une idée sur le post là ? Pourquoi mon $image de la requete ne prend pas les valeurs possible du POST_IMAGE ?
L'homme-singe est celui qui connait ses limites
le 02/07/2008 à 18:33
krma
Bon, après 2 jours de rames, je n'ai toujours pas trouvé pourquoi je n'arrivai pas à récupérer ma variable $image.
Voici le code et le formulaire, que j'ai regroupé sur la meme page avec un switch action des familles, pour faciliter le copier/coller. Si qqu'un peut me dire ou ça coince, je lui en serai éternellement reconnaissant.
Le nom de la page _CHECKBOX_test.php (pour le formulaire). Merci !
<?php
switch($action)
{
case "submit";
if (isset($_POST['image'])) {
$image = $_POST['image'];
/*affiche le contenu du tableau $checkbox*/
//print_r($image);
/*pour chaque enregistrement du tableau on affiche sa valeur*/
for($i = 0;$i < count($image);$i++) {
/*si un seul enregistrement*/
if ($i == 0) {
$image = ''.$image[0];
/*si plusieurs enregistrements*/
} else {
$image = $image.';'.$image[$i];
}
print $image;
}
}
break;
default:
?>
<form method="POST" action="_CHECKBOX_test.php?action=submit">
<input type="checkbox" name="image[]" value="affiche_baba.jpg">
<img src="http://www.encompagniedeos.com/imgincfront/affiche_baba.jpg" width="80"><br />
<input type="checkbox" name="image[]" value="affiche_bubulle.jpg">
<img src="http://www.encompagniedeos.com/imgincfront/affiche_bubulle.jpg" width="80"><br />
<input type="checkbox" name="image[]" value="affiche_cendrillon.jpg">
<img src="http://www.encompagniedeos.com/imgincfront/affiche_cendrillon.jpg" width="80"><br />
<input type="submit" value="envoyer">
</form>
<?php
break;
}
?>
L'homme-singe est celui qui connait ses limites