IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

boucle foreach checkbox [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Par défaut boucle foreach checkbox
    bonjour à tous,

    j'ai un petit souci

    j'ai un tableau avec 2 colonnes : une avec le numéro d'une demande et l'autre colonne avec un checkbox qui permet de valider le traitement de la demande.
    l'utilisateur coche toutes les checkbox qui correspondent aux demandes traitées et valide.

    les checkbox sont construites dynamiquement comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='checkbox' name='choix[".$row_Recordset1['id_balisage']."]' value=".$row_Recordset1['id_balisage'].">
    pour l'instant voici le code que j'ai pour mettre à jour l'état de la demande:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    for ($i=0; $i<=100; $i++)
    {
     
    if(isset($_POST['choix'][$i]))
     
    {$e=$_POST['choix'][$i];
     
    $sql = "UPDATE demande_balisage SET etat='TRAITEE' WHERE id_balisage='$e' ";
     
    mysql_query($sql) or die('Erreur SQL!'.$sql.'<br>'.mysql_error()); }
    }

    j'utilise une boucle simple qui teste de 0 à 100.
    mais je voudrais que la boucle se contente de mettre à jour les lignes ou une checkbox a été cochée.

    j'espère être clair.
    je pense que je dois utiliser une boucle foreach mais j'ai un peu de mal à ennoncer la condition.

    merci d'avance pour votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    C'est effectivement une bien meilleure methode de parcourir le tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach($_POST['choix'] as $id) {
    $sql = "UPDATE demande_balisage SET etat='TRAITEE' WHERE id_balisage=" . intval($id);
    mysql_query($sql) or die('Erreur SQL!'.$sql.'<br>'.mysql_error());
    }
    j'ai juste ajouté un intval() pour la sécurité.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Par défaut
    merci beaucoup ca marche parfaitement et surtout je compris mieux comment utiliser ce type de boucle

    bonne journée à toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JSTL] boucle forEach pour deux liste en même temps
    Par ruud002 dans le forum Taglibs
    Réponses: 1
    Dernier message: 28/09/2006, 15h54
  2. [Tableaux] Boucle foreach inbriquée
    Par nebil dans le forum Langage
    Réponses: 17
    Dernier message: 10/09/2006, 11h40
  3. [C# VS 2005] Collection et boucle foreach
    Par SDragon dans le forum Windows Forms
    Réponses: 3
    Dernier message: 24/07/2006, 19h43
  4. [C# 1.1]Boucles foreach imbriquees
    Par Nip dans le forum Windows Forms
    Réponses: 12
    Dernier message: 13/04/2006, 16h35
  5. [Tableaux] la boucle foreach
    Par jeanfrancois dans le forum Langage
    Réponses: 7
    Dernier message: 09/03/2006, 17h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo