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 :

Plusieurs modification checkbox


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut Plusieurs modification checkbox
    Bonjour;

    je vous contactes, car je souhaiterais en cochant plusieurs checkbox, modifier la valeur dans la base de donnée,

    voilà le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    <?php
     include("mysqlcon.php");
     
    echo '<table border="1"> <form action="?action=choixlogo&choix=update" method="POST">'; 
    // On récupère le résultat de la requête SQL de sélection des données sur les navigateurs
    $resultat = mysql_query("Select * from M_AUTO_MARQUE_MRQ"); 
    // Nombre maximum de lignes souhaitées
    $max_colonnes = 4; 
    // On compte le nombre de résultat
    $nb_resultat = mysql_num_rows($resultat); 
    // On veut un maximum de 2 colonnes donc on calcul le nombre de colonnes en arrondissant à l'entier supérieur
    $nb_lignes = ceil($nb_resultat / $max_colonnes); 
    // On cré un tableau par ligne
    for($i = 1; $i <= $nb_lignes; $i++)
    {
         ${'lign'.$i} = array();
    }
     
    // On initialise la ligne en cours à 1, première ligne
    $ligne_en_cours = 1; 
    // On initialise le nombre de colonne à 1 qui va nous servir de compteur de colonne
    $nb_colonnes = 1; 
    // On parcourt le tableau $resultat de la requête et on stock chacune des lignes dans le nouveau tableau $tab
    while($tab = mysql_fetch_array($resultat))
    {  
      // On insère les résultats dans les tableaux créés ci-dessus
      array_push(${'lign'.$ligne_en_cours}, $tab['nom_marque']);  
      // On vérifie si l'on est pas au maximum de ligne souhaité afin de revenir à la première ligne
      if($ligne_en_cours == $nb_lignes)
      {
         $ligne_en_cours = 1;     
         // On passe à la colonne suivante
         $nb_colonnes++;     
      // On passe à la ligne suivante s'il reste suffisemment de colonnes pour arriver au $max_colonnes
      // autrement, on laisse l'insertion dans la ligne 1
      } elseif($ligne_en_cours != $nb_lignes && ($nb_resultat - $nb_colonnes) >= $max_colonnes) {
           $ligne_en_cours++;
      }
    }
     
    // On commence l'affichage ligne par ligne
    for($i = 1; $i <= $nb_lignes; $i++)
    {
      if($i != 1)
      {
           echo'</tr>';
      }
      echo'<tr>';  
      // On parcourt le tableau de la ligne pour son affichage
      foreach(${'lign'.$i} as $lign)
      {
     
    $sql_des = mysql_query("Select * from M_AUTO_MARQUE_MRQ where nom_marque='$lign'");
    $sql_d = mysql_fetch_array($sql_des);
     
    $idnumero = $sql_d["id_marque"];
     $img_marque = $sql_d["logo_marque"];
     $nom_marque = $sql_d["nom_marque"];
    ?>
    <td><input type="hidden" name="idlogo" value="<? echo $idnumero ; ?>">
    <input type="checkbox" name="checkbox[]" id="<? echo $idnumero; ?>" value="<? echo $idnumero; ?>"> <?php echo $nom_marque; ?> <a href="?action=modif_logo&id_logo=<? echo $idnumero; ?>"><img src="modif.png"></a><br><img src="../marque/<?php echo $img_marque; ?>"  ></a><br></td>
    <?php
      }
    }
    echo'</table><input type="submit" name="submit" value="Envoyer"></form>'; 
     
     
     
     
    $choix = $_GET["choix"];
    if($choix == "update") {
     $checkbox = $_POST["checkbox"];
        $numero_release = $_POST["idlogo"];
     
       for ($i = 0; $i < count($_POST["checkbox"]); $i++)
          echo $_POST["nfo"][$i]." - ";
     
          mysql_query("UPDATE M_AUTO_MARQUE_MRQ SET validation='1' WHERE id_marque='" . $numero_release. "'");
    echo("reussi");
    }
     
    ?>
    Aprés plusieurs jours sur le code, je ne vois pas ou est l'erreur, la modification ne se fait pas quand je coche plusieurs cases

    Cordialement

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 670
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 670
    Par défaut
    tu as affiché le tableau $_POST pour vérifier que tu reçois bien les informations des cases cochées ?

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    non pas encore , j'y ai pas pensé, je vais testé je tiens au jus

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    je viens de faire des tests, quand je coche une seule case, ca marche ,

    mais des que j'en coche plusieurs ça marche plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    <?php
     include("mysqlcon.php");
     
    echo '<table border="1"> <form action="?action=choixlogo&choix=update" method="POST">'; 
    // On récupère le résultat de la requête SQL de sélection des données sur les navigateurs
    $resultat = mysql_query("Select * from M_AUTO_MARQUE_MRQ"); 
    // Nombre maximum de lignes souhaitées
    $max_colonnes = 4; 
    // On compte le nombre de résultat
    $nb_resultat = mysql_num_rows($resultat); 
    // On veut un maximum de 2 colonnes donc on calcul le nombre de colonnes en arrondissant à l'entier supérieur
    $nb_lignes = ceil($nb_resultat / $max_colonnes); 
    // On cré un tableau par ligne
    for($i = 1; $i <= $nb_lignes; $i++)
    {
         ${'lign'.$i} = array();
    }
     
    // On initialise la ligne en cours à 1, première ligne
    $ligne_en_cours = 1; 
    // On initialise le nombre de colonne à 1 qui va nous servir de compteur de colonne
    $nb_colonnes = 1; 
    // On parcourt le tableau $resultat de la requête et on stock chacune des lignes dans le nouveau tableau $tab
    while($tab = mysql_fetch_array($resultat))
    {  
      // On insère les résultats dans les tableaux créés ci-dessus
      array_push(${'lign'.$ligne_en_cours}, $tab['nom_marque']);  
      // On vérifie si l'on est pas au maximum de ligne souhaité afin de revenir à la première ligne
      if($ligne_en_cours == $nb_lignes)
      {
         $ligne_en_cours = 1;     
         // On passe à la colonne suivante
         $nb_colonnes++;     
      // On passe à la ligne suivante s'il reste suffisemment de colonnes pour arriver au $max_colonnes
      // autrement, on laisse l'insertion dans la ligne 1
      } elseif($ligne_en_cours != $nb_lignes && ($nb_resultat - $nb_colonnes) >= $max_colonnes) {
           $ligne_en_cours++;
      }
    }
     
    // On commence l'affichage ligne par ligne
    for($i = 1; $i <= $nb_lignes; $i++)
    {
      if($i != 1)
      {
           echo'</tr>';
      }
      echo'<tr>';  
      // On parcourt le tableau de la ligne pour son affichage
      foreach(${'lign'.$i} as $lign)
      {
     
    $sql_des = mysql_query("Select * from M_AUTO_MARQUE_MRQ where nom_marque='$lign'");
    $sql_d = mysql_fetch_array($sql_des);
     
    $idnumero = $sql_d["id_marque"];
     $img_marque = $sql_d["logo_marque"];
     $nom_marque = $sql_d["nom_marque"];
    ?>
    <td><input type="hidden" name="idlogo" value="<? echo $idnumero ; ?>">
    <input type="checkbox" name="checkbox[]" id="<? echo $idnumero; ?>" value="<? echo $idnumero; ?>"> <?php echo $nom_marque; ?> <a href="?action=modif_logo&id_logo=<? echo $idnumero; ?>"><img src="modif.png"></a><br><img src="../marque/<?php echo $img_marque; ?>"  ></a><br></td>
    <?php
      }
    }
    echo'</table><input type="submit" name="submit" value="Envoyer"></form>'; 
     
     
     
     
    $choix = $_GET["choix"];
    if($choix == "update") {
     $checkbox = $_POST["checkbox"];
        $numero_release = $_POST["idlogo"];
     
       for ($i = 0; $i < count($_POST["checkbox"]); $i++)
     
    $check = $_POST["checkbox"][$i]; 
     
          mysql_query("UPDATE M_AUTO_MARQUE_MRQ SET validation='1' WHERE id_marque='$check'");
    echo("reussi $check");
    }
     
    ?>

  5. #5
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 670
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 670
    Par défaut
    toujours la même question :
    Citation Envoyé par mathieu Voir le message
    tu as affiché le tableau $_POST pour vérifier que tu reçois bien les informations des cases cochées ?

  6. #6
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    et j'ai repondu que oui j'ai fais les test, qu'en sélectionnant un seul checkbox ca marche, mais pas quand j'en selectionne plusieurs

  7. #7
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 670
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 670
    Par défaut
    ce n'est pas ce que j'ai demandé.
    je te proposais d'afficher le contenu des variables dans ton code pour voir si elle contiennent ce que tu souhaites

Discussions similaires

  1. [MVVM] Récupération de valeur originale d'une cellule après plusieurs modification.
    Par maradona_9 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 31/12/2012, 19h06
  2. [MySQL] Récupération plusieurs valeurs checkbox
    Par snorky94 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/08/2012, 09h28
  3. [MySQL] Formulaire de Modification : Checkbox déjà cochées !
    Par mellosmoothe dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 20/05/2007, 14h22
  4. Réponses: 13
    Dernier message: 14/09/2006, 21h30
  5. Réponses: 2
    Dernier message: 27/07/2006, 09h14

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