checkbox, SQL et boucle

page 1 page 2
Répondre
i M@N
i M@N
Déconnecté
One Love, One Heart, One Unity.
reuh ...

waow ... si ça donne un truc fonctionnel je veux bien repasser sous window$ ... ou alors j'ai rien pigé à la question. oÔ

@+...
krma
krma
Déconnecté
L'homme-singe est celui qui connait ses limites
Ha, nos messages se sont croisés. Merci La Glob, ton code semble bien plus compact, je vais le bosser. Au fait, il faut tjs mettre les sql_escape_strg avant insertion???
krma
krma
Déconnecté
L'homme-singe est celui qui connait ses limites
mdrrr iMan smiley
c'est sur que je suis un la caverne à Mimile du PHP (pourtant 7 ans que je bidouille mais bon, quand ça fait ce que je veux, ça me suffit, meme si c'est encore moins que catholique.
i M@N
i M@N
Déconnecté
One Love, One Heart, One Unity.
reuh ...

nan mais te barres pas comme ça, faut améliorer ton code là, c'est nawak (excuse mais faut le dire).
Je tente de coder un truc et on en reparle ... je reviens.

@+...
krma
krma
Déconnecté
L'homme-singe est celui qui connait ses limites
ptdrrrrr, mais il est top ce code de 50 lignes alors que 6 suffiraient :p)
Tu sais, j'ai une devise : "quand ça marche, touches plus à rien".
Mais faut progresser, c sur.. Bon, bah merci si tu codes un truc plus mieux. à tout'
i M@N
i M@N
Déconnecté
One Love, One Heart, One Unity.
reuh ...

Je vois plus comme ça :
  1. <?php
  2. /*on initialise la variable $action issue de $_GET (_CHECKBOX_test.php?action=submit)*/  
  3. if (isset($_GET['submit'])) $action = $_GET['submit']; else $action = '';  
  4. /*début du switch*/  
  5. switch($action) {  
  6. /*si $action = "submit"*/  
  7.  
  8. case "submit" :  
  9. /*si une (ou plusieurs) checkbox(es) cochée(s)*/  
  10.  
  11. if (isset($_POST['image'])) {  
  12.  
  13. $image = $_POST['image'];  
  14.  
  15. /*affiche le contenu du tableau $checkbox*/  
  16.  
  17. //print_r($image);  
  18.  
  19. /*on compte le nombre d'enregistrement(s) du tableau $image*/  
  20.  
  21. for($i = 0;$i < count($image);$i++) {  
  22.  
  23. /*si un seul enregistrement*/  
  24.  
  25. if ($i == 0) {  
  26.  
  27. $img = ''.$image[0];  
  28.  
  29. }  
  30. /*si plusieurs enregistrements*/  
  31. else {  
  32. $img = $img.';'.$image[$i];  
  33. }  
  34.  
  35. //print $image;  
  36.  
  37. }  
  38.  
  39. /*on insère dans la base*/  
  40. $base2 = mysql_connect('host', 'user', 'password');  
  41.  
  42. mysql_select_db('base', $base);  
  43.  
  44. $sql2 = "INSERT INTO 2008_test VALUES('','$type','$status','$home','$titre','$url','$texte','$img')";  
  45. mysql_query($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());  
  46.  
  47. /*maintenant on affiche ce qui a été sélectionné avec les checkboxes*/  
  48. /*on compte le nombre d'enregistrement(s) du tableau $image*/  
  49.  
  50. for($i = 0; $i < count($img);$i++) {  
  51.  
  52. /*si un seul enregistrement*/  
  53.  
  54. if ($i == 0) {  
  55. /*on affiche l'image*/  
  56.  
  57. echo '<img src="./imgincfront/'.$image[0].'" />';  
  58.  
  59. }  
  60. /*si plusieurs enregistrements*/  
  61. else {  
  62. /*on affiche les images*/  
  63.  
  64. echo '<img src="./imgincfront/'.$image[$i].'" /><br />';  
  65. }  
  66. }  
  67. /*fin du case : "submit"*/  
  68.  
  69. break;  
  70. /*case defaut, $action != "submit" => affichage du formulaire*/  
  71.  
  72. default : echo '<form method="POST" action="_CHECKBOX_test.php?action=submit">
  73. <input type="checkbox" name="image[]" value="affiche_baba.jpg">
  74. <img src="./imgincfront/affiche_baba.jpg" width="80"><br />
  75. <input type="checkbox" name="image[]" value="affiche_bubulle.jpg">
  76. <img src="./imgincfront/affiche_bubulle.jpg" width="80"><br />
  77. <input type="checkbox"name="image[]" value="affiche_cendrillon.jpg">
  78. <img src="./imgincfront/affiche_cendrillon.jpg" width="80"><br />
  79. <input type="submit" value="envoyer">
  80. </form>';  
  81. /*fin du case defaut*/  
  82. break;  
  83.  
  84. /*fin du if (isset($_POST['image']))*/  
  85. }  
  86. /*fin du switch*/  
  87. }  
  88.  
  89. ?> 

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 ...

@+...
krma
krma
Déconnecté
L'homme-singe est celui qui connait ses limites
Yes, c'est propre, merci! Le vrai problème, c'est que vous êtes trop fort. Et c'est tant mieux d'ailleurs..
page 1 page 2
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Php - Breizh Blog