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 :

Tableau de cases à cocher et traitement [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é
    Inscrit en
    Novembre 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 80
    Par défaut Tableau de cases à cocher et traitement
    Bonjour à tous,
    J'ai un tableau d'élèves qui doivent s'inscrire à 4 dates de soutien scolaire (dates prédéfinies, donc case à cocher). J'ai réussi à faire le formulaire que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <td><?php echo '<a href="listeeleve_suite.php?num_etab='.$donnees['NUMETAB'].'&num_division='.$donnees['NUMDIVISION'].'&numeleve='.$donnees['NUMELEVE'].'">'.$donnees['NOM_ELEVE'].' '.$donnees['PRENOM_ELEVE'].'</a>';?></td>
    					<td align = center><input type="checkbox" name="eleve[<?php echo $donnees['NUMELEVE'];?>]" value="" checked=checked /></td>
    					<td align = center><input type="checkbox" name="eleve[<?php echo $donnees['NUMELEVE'];?>]" value="" checked=checked /></td>
    					<td align = center><input type="checkbox" name="eleve[<?php echo $donnees['NUMELEVE'];?>]" value="" checked=checked /></td>
    					<td align = center><input type="checkbox" name="eleve[<?php echo $donnees['NUMELEVE'];?>]" value="" checked=checked /></td>
    Déjà est-ce que selon vous mon code est bon ?

    Ensuite, je dois récupérer les valeurs de ces cases à cocher rattachées à chaque élève et les insérer dans ma BDD.

    J'ai fais ceci pour voir l'allure de mon tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo '<pre>';
    var_dump($_POST);
    echo '</pre>';
    qui me renvoi ceci :
    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
     
     
    array (size=1)
      'eleve' => 
        array (size=31)
          1 => string '' (length=0)
          2 => string '' (length=0)
          3 => string '' (length=0)
          4 => string '' (length=0)
          5 => string '' (length=0)
          6 => string '' (length=0)
          7 => string '' (length=0)
          8 => string '' (length=0)
          9 => string '' (length=0)
          10 => string '' (length=0)
          11 => string '' (length=0)
          12 => string '' (length=0)
          13 => string '' (length=0)
          14 => string '' (length=0)
          15 => string '' (length=0)
          16 => string '' (length=0)
          17 => string '' (length=0)
          18 => string '' (length=0)
          19 => string '' (length=0)
          20 => string '' (length=0)
          21 => string '' (length=0)
          22 => string '' (length=0)
          23 => string '' (length=0)
          24 => string '' (length=0)
          25 => string '' (length=0)
          26 => string '' (length=0)
          27 => string '' (length=0)
          28 => string '' (length=0)
          29 => string '' (length=0)
          30 => string '' (length=0)
          31 => string '' (length=0)
    mais là je ne sais plus faire. Je ne sais pas comment traiter le formulaire avec les cases à cocher. De plus, ne devrait-il pas y avoir 4 fois le même élève pour chaque date de soutien ?
    En vous remerciant pour votretemps et votre aide.
    Jérôme

  2. #2
    Membre émérite Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 601
    Par défaut
    Bonjour
    Tu devrais pouvoir t'inspirer des scripts de cet excellent tuto dans ce chapitre dédié à la connexion entre les formulaires et les bdd http://sylvie-vauthier.developpez.co...page=intro-bdd

  3. #3
    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
    Tes 4 checkbox sont identiques donc ça ne va pas.

    egalement en html :
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 80
    Par défaut Suite case à cocher
    Merci pour vos réponses...
    Donc j'en suis là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    for ($i=1; $i < 5 ; $i++)
    {
    ?>
    <td align = center><input type="checkbox" name="eleve[]" value="<?php echo $i;?>" checked="checked" /></td>
    <?php
    }
    ?>
    et ce qui me donne :

    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
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
     
    array (size=1)
      'eleve' => 
        array (size=124)
          0 => string '1' (length=1)
          1 => string '2' (length=1)
          2 => string '3' (length=1)
          3 => string '4' (length=1)
          4 => string '1' (length=1)
          5 => string '2' (length=1)
          6 => string '3' (length=1)
          7 => string '4' (length=1)
          8 => string '1' (length=1)
          9 => string '2' (length=1)
          10 => string '3' (length=1)
          11 => string '4' (length=1)
          12 => string '1' (length=1)
          13 => string '2' (length=1)
          14 => string '3' (length=1)
          15 => string '4' (length=1)
          16 => string '1' (length=1)
          17 => string '2' (length=1)
          18 => string '3' (length=1)
          19 => string '4' (length=1)
          20 => string '1' (length=1)
          21 => string '2' (length=1)
          22 => string '3' (length=1)
          23 => string '4' (length=1)
          24 => string '1' (length=1)
          25 => string '2' (length=1)
          26 => string '3' (length=1)
          27 => string '4' (length=1)
          28 => string '1' (length=1)
          29 => string '2' (length=1)
          30 => string '3' (length=1)
          31 => string '4' (length=1)
          32 => string '1' (length=1)
          33 => string '2' (length=1)
          34 => string '3' (length=1)
          35 => string '4' (length=1)
          36 => string '1' (length=1)
          37 => string '2' (length=1)
          38 => string '3' (length=1)
          39 => string '4' (length=1)
          40 => string '1' (length=1)
          41 => string '2' (length=1)
          42 => string '3' (length=1)
          43 => string '4' (length=1)
          44 => string '1' (length=1)
          45 => string '2' (length=1)
          46 => string '3' (length=1)
          47 => string '4' (length=1)
          48 => string '1' (length=1)
          49 => string '2' (length=1)
          50 => string '3' (length=1)
          51 => string '4' (length=1)
          52 => string '1' (length=1)
          53 => string '2' (length=1)
          54 => string '3' (length=1)
          55 => string '4' (length=1)
          56 => string '1' (length=1)
          57 => string '2' (length=1)
          58 => string '3' (length=1)
          59 => string '4' (length=1)
          60 => string '1' (length=1)
          61 => string '2' (length=1)
          62 => string '3' (length=1)
          63 => string '4' (length=1)
          64 => string '1' (length=1)
          65 => string '2' (length=1)
          66 => string '3' (length=1)
          67 => string '4' (length=1)
          68 => string '1' (length=1)
          69 => string '2' (length=1)
          70 => string '3' (length=1)
          71 => string '4' (length=1)
          72 => string '1' (length=1)
          73 => string '2' (length=1)
          74 => string '3' (length=1)
          75 => string '4' (length=1)
          76 => string '1' (length=1)
          77 => string '2' (length=1)
          78 => string '3' (length=1)
          79 => string '4' (length=1)
          80 => string '1' (length=1)
          81 => string '2' (length=1)
          82 => string '3' (length=1)
          83 => string '4' (length=1)
          84 => string '1' (length=1)
          85 => string '2' (length=1)
          86 => string '3' (length=1)
          87 => string '4' (length=1)
          88 => string '1' (length=1)
          89 => string '2' (length=1)
          90 => string '3' (length=1)
          91 => string '4' (length=1)
          92 => string '1' (length=1)
          93 => string '2' (length=1)
          94 => string '3' (length=1)
          95 => string '4' (length=1)
          96 => string '1' (length=1)
          97 => string '2' (length=1)
          98 => string '3' (length=1)
          99 => string '4' (length=1)
          100 => string '1' (length=1)
          101 => string '2' (length=1)
          102 => string '3' (length=1)
          103 => string '4' (length=1)
          104 => string '1' (length=1)
          105 => string '2' (length=1)
          106 => string '3' (length=1)
          107 => string '4' (length=1)
          108 => string '1' (length=1)
          109 => string '2' (length=1)
          110 => string '3' (length=1)
          111 => string '4' (length=1)
          112 => string '1' (length=1)
          113 => string '2' (length=1)
          114 => string '3' (length=1)
          115 => string '4' (length=1)
          116 => string '1' (length=1)
          117 => string '2' (length=1)
          118 => string '3' (length=1)
          119 => string '4' (length=1)
          120 => string '1' (length=1)
          121 => string '2' (length=1)
          122 => string '3' (length=1)
          123 => string '4' (length=1)
    Je n'arrive toujours pas à faire le lien avec ma BDD...je pense traiter avec un INSERT et un foreach mais je ne sais pas comment m'y prendre pour formater correctement le tableau de façon à ce que les valeurs BDD / formulaire correspondent.

    En tous cas merci pour votre aide précieuse ! ! !
    Jérôme

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    je suppose que $donnees['NUMELEVE'] défini un élève de façon UNIQUE.

    Il faut aussi identifier chaque checkbox, indépendamment des autres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	<td><a href="listeeleve_suite.php?num_etab=<?php echo $donnees['NUMETAB']; ?>&num_division=<?php echo $donnees['NUMDIVISION']; ?>&numeleve=<?php echo $donnees['NUMELEVE']; ?>"><?php echo $donnees['NOM_ELEVE'].' '.$donnees['PRENOM_ELEVE']; ?></a>';?></td>
    <?php for ($i=1; $i < 5 ; $i++){ ?>
    	<td><input type="checkbox" name="date_eleve[<?php echo $i;?>][<?php echo $donnees['NUMELEVE'];?>]" value="<?php echo $donnees['NUMELEVE'];?>" checked="checked" /></td>
    <?php } ?>
    N.B. mettre checked="checked" suppose que les cases sont déjà cochées. Ne rien mettre sinon.

    On récupère un array : Il contient lui-même 4 array :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $_POST['date_eleve'][1]
    $_POST['date_eleve'][2]
    $_POST['date_eleve'][3]
    $_POST['date_eleve'][4]
    Chacun de ces array contient les numéros des élèves qui ont coché la date concernée.

    Jérome (aussi !)

  6. #6
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 80
    Par défaut
    EN fait je venais tout juste de modifier cela (c'est le prénom qui veut cela...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td align = center><input type="checkbox" name="eleve[<?php echo $donnees['NUMELEVE'];?>]" value="<?php echo $donnees['NUMELEVE'];?>" checked="checked" /></td>
    Mais voilà, j'ai cela comme résultat de dump :

    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
     
    array (size=1)
      'eleve' => 
        array (size=31)
          1 => string '4' (length=1)
          2 => string '4' (length=1)
          3 => string '4' (length=1)
          4 => string '4' (length=1)
          5 => string '4' (length=1)
          6 => string '4' (length=1)
          7 => string '4' (length=1)
          8 => string '4' (length=1)
          9 => string '4' (length=1)
          10 => string '4' (length=1)
          11 => string '4' (length=1)
          12 => string '4' (length=1)
          13 => string '4' (length=1)
          14 => string '4' (length=1)
          15 => string '4' (length=1)
          16 => string '4' (length=1)
          17 => string '4' (length=1)
          18 => string '4' (length=1)
          19 => string '4' (length=1)
          20 => string '4' (length=1)
          21 => string '4' (length=1)
          22 => string '4' (length=1)
          23 => string '4' (length=1)
          24 => string '4' (length=1)
          25 => string '4' (length=1)
          26 => string '4' (length=1)
          27 => string '4' (length=1)
          28 => string '4' (length=1)
          29 => string '4' (length=1)
          30 => string '4' (length=1)
          31 => string '4' (length=1)
    Cela correspond bien à mes 31 élèves de cette classe mais ils ont la possibilités de faire quatre voeux...je devrais donc avoir quatre fois l'élève 1, quatre fois l'élève 2, etc...non ?

    Merci beaucoup.

  7. #7
    Invité
    Invité(e)
    Par défaut
    J'ai corrigé mon message précédent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	<td><a href="listeeleve_suite.php?num_etab=<?php echo $donnees['NUMETAB']; ?>&num_division=<?php echo $donnees['NUMDIVISION']; ?>&numeleve=<?php echo $donnees['NUMELEVE']; ?>"><?php echo $donnees['NOM_ELEVE'].' '.$donnees['PRENOM_ELEVE']; ?></a>';?></td>
    <?php for ($i=1; $i < 5 ; $i++){ ?>
    	<td><input type="checkbox" name="date_eleve[<?php echo $i;?>][<?php echo $donnees['NUMELEVE'];?>]" value="<?php echo $donnees['NUMELEVE'];?>" checked="checked" /></td>
    <?php } ?>
    Il faut distinguer les 4 checkbox, sinon, elles ont le même nom :
    name="date_eleve[<?php echo $i;?>][<?php echo $donnees['NUMELEVE'];?>]"

    C'est aussi pour ça que j'ai appelé la variable "date_eleve".

  8. #8
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 80
    Par défaut Afficher les cases cochées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td align = "center"><input type="checkbox" name="eleve[<?php echo $i;?>][<?php echo $donnees['NUMELEVE'];?>]" value="<?php echo $donnees['NUMELEVE'];?>" <?php if (isset($donnees['choix_eleve'])) { echo 'checked'; } ?> /></td>
    Est-ce que qulqu'un peut me dire pourquoi ce code ne fonctionne pas ?
    Il me check toutes mes cases...
    Merci par avance
    Jérôme

  9. #9
    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
    D'ou vient $donnees['choix_eleve'] ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 80
    Par défaut
    De ma base de données...

    J'ai en fait cinq champs sur ma BDD :

    lo_choisir :
    NUM_PERIODE,
    NUMETAB,
    NUMDIVISION,
    NUMELEVE,
    choix_eleve

    J'arrive bien à saisir des données et à les insérer dans ma BDD le problème c'est comment récupérer ces infos dans le formulaire...
    Merci pour vos lumières,
    Jérôme

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bonjour les insomniaques...

    le champ est forcement "isset" (true).
    ce qu'il faut verifier , c'est sa valeur.

    Et vu qu'un eleve peut cocher 4 dates/checkbox, je suis curieux de savoir comment tu l'as enregistré en BdD.

    N.B. au cas où...
    SI tu ne souhaitais qu'un seul choix possible par eleve, il fallait utiliser des input "radio".

  12. #12
    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
    Est-ce que qulqu'un peut me dire pourquoi ce code ne fonctionne pas ?
    Ce n'est pas un problème de PHP/Mysql que tu as mais un problème de logique et de conception.
    Il va falloir reprendre depuis le début.

    1 - Tu souhaites mettre à jour ta table contenant la participation d'élèves à des périodes.
    Une mise à jour implique que la table est déjà remplie : comment est-elle remplie ?

    2 - Dans le code que tu nous montres, tu nommes tes périodes de 1 à 4 mais je suppose que dans la vie de ton application il y aura plus d'événements que ça. Tu as peut être même déjà une table pour gérer ces périodes.
    Il faut donc reprendre ce point.

    3 - une fois que tu auras retravaillé ces points, tu verras peut être plus clairement pourquoi ton test de checkbox n'est pas bon :
    - ton test vérifie si la variable provenant de la BDD existe : elle existe forcemment puisque tu es dans la boucle qui vient de la lire.
    La question est de savoir si la période x (cf. point numéro 2) vaut 1 ou 0 (ou n'existe pas, cf. point numero 1) pour l'élève.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 80
    Par défaut
    Bonjour les insomniaques,

    Alors commençons par la table que voici :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    --
    -- Structure de la table `lo_choisir`
    --
     
    CREATE TABLE IF NOT EXISTS `lo_choisir` (
      `NUM_PERIODE` varchar(32) NOT NULL,
      `NUMETAB` varchar(32) NOT NULL,
      `NUMDIVISION` varchar(32) NOT NULL,
      `NUMELEVE` int(4) NOT NULL,
      `choix_eleve` tinyint(1) NOT NULL,
      PRIMARY KEY (`NUM_PERIODE`,`NUMETAB`,`NUMDIVISION`,`NUMELEVE`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    Chaque élève peut choisir ses périodes de soutien scolaire (quatre périodes possibles).

    Il y a 4 périodes concernées, il y a 4 établissements scolaires concernés, chacun leurs divisions et bien sûr des élèves dans ces divisions ---> donc choix_eleve.

    J'ai crée deux identifiants relatifs pour le rattachement de l'élève à sa division et son établissement...comme cela je suis sûr de ne pas avoir de doublons dans ma base.

    J'ai rempli la table lo_choisir via un script pour créer les combinaisons possibles ce qui me permet de pouvoir faire cette boucle...mais peut-être n'est-ce pas bon ?

    Dans l'attente de vous lire,
    Jérôme

  14. #14
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 80
    Par défaut Recherche solution...
    Bonsoir à tous,

    Voilà mon code à l'heure actuelle :

    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
     
    <form method="post" action="saisie_voeux.php">
     
    <p>
        <table align=center border="1" cellpadding="10" cellspacing="5">
    				<tr>
    				<td></td>
    				<?php
     
    				$req_entete = $bdd->prepare('SELECT * FROM lo_periode');
    				$req_entete->execute(array());
    				while ($periode = $req_entete->fetch())
    					{
    					?>
    					<td align = center><?php echo $periode['DATES_PERIODE'];?></td>
    					<?php
    					}
     
    				$j=0;
    				$req_liste = $bdd->prepare('SELECT * FROM lo_eleve E LEFT OUTER JOIN lo_choisir C ON E.NUMELEVE = C.NUMELEVE WHERE E.`NUMDIVISION` = ? ORDER BY E.`NOM_ELEVE` ASC , E.`PRENOM_ELEVE` ASC');
    				$req_liste->execute(array($_GET['numdivision']));
     
    				while ($donnees = $req_liste->fetch())
    				{ 
    					?>
    					<tr class="prem <?php echo ( ($j % 2 == 0) ? 'classe1' : 'classe2' ) ?>">
    					<?php
    					$j++;
    					?>
     
    					<td><?php echo '<a href="listeeleve_suite.php?num_etab='.$donnees[0].'&num_division='.$donnees[1].'&numeleve='.$donnees[2].'">'.$donnees['NOM_ELEVE'].' '.$donnees['PRENOM_ELEVE'].'</a>';?></td>
    					<INPUT TYPE="HIDDEN" NAME="etab" VALUE="<?php echo $donnees[0];?>">
    					<INPUT TYPE="HIDDEN" NAME="division" VALUE="<?php echo $donnees[1];?>">
     
    					<?php
    					for ( $i = 1 ; $i < 5 ; $i++)
    					{
    					?>
    					<td align = "center"><input type="checkbox" name="eleve[<?php echo $donnees[2];?>][<?php echo $i; ?>]" value="<?php echo $donnees[2];?>" <?php if (isset($donnees[5])) { echo 'checked="checked"'; } ?>"<br/></td>
    					<?php
    					}
    					?>
    					</tr>
    					<?php
     
    				}
    				?>
     
    				<?php
    			$req_liste->closeCursor();
    		?>
     
    		<tr>
    			<td></td>
    			<td><input type="submit" value="Valider" /></td>
    		</tr>
    	</table>
    </p>
     
    </form>
    Problème : la requête contient plusieurs fois le même élève et c'est normal s'il s'est inscrit à plusieurs périodes de soutien (quatre en l'occurrence).
    Donc, si l'élève a choisi quatre périodes au lieu de me cocher les quatres cases, il me met quatre fois l'enregistrement. Je conçois bien le problème mais je ne vois pas comment le résoudre...à l'aide SVP

    Merci,
    Jérôme

  15. #15
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    1/ évite les "SELECT *..."
    Nomme les champs dont tu as besoin pour la requête.

    2/ Ensuite, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT DISTINCT NUMELEVE, xxx, yyy ..."
    3/ Question conception...
    Faire la 1ère requête sur la table "lo_periode" n'est pas forcément la bonne option.
    Si un élève n'a coché AUCUNE case, il ne sera pas présent dans cette table (si j'ai bien compris le mode de remplissage de cette table).

    Courage ! La fin est proche ! (la faim aussi... il est 19h !)

  16. #16
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 80
    Par défaut
    Je vais éviter les select * mais pour l'instant ce n'est pas ce qui me préoccupe.
    Le SELECT DICTINCT ne va pas être bon puisqu'il me faut tous les élèves avec toutes les périodes choisies...non ?

    EN fait la première requête ne me sert qu'à afficher les en-têtes des colonnes...mais je modifierai cela plus tard, pour l'instant elle ne me gêne pas...

  17. #17
    Invité
    Invité(e)
    Par défaut
    La 1ère requete doit se faire sur la table contenant TOUS les élèves :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req1 = "SELECT NUMELEVE FROM la_table_des_eleves"
    Elle va te donner les lignes du tableau (<tr>) à construire.

    Ensuite, la 2ème (dans CHAQUE <tr>) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT * FROM lo_periode WHERE NUMELEVE = ".$row1['NUMELEVE']..."
    Qui va te donner les enregistrements (de la table "lo_periode", donc) des cases cochées par CET élève.
    Dernière modification par Invité ; 27/08/2013 à 19h54.

  18. #18
    Membre confirmé
    Inscrit en
    Novembre 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 80
    Par défaut
    Bon bon bon...je vais voir tout cela et je te tiens informé...bon ap.

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

Discussions similaires

  1. [WD-2007] Macro : Mise en forme tableau fonction case à cocher
    Par neronne dans le forum VBA Word
    Réponses: 6
    Dernier message: 07/01/2015, 15h43
  2. [MySQL] Case à cocher et traitement avec une base de données
    Par Angelik dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/06/2008, 12h33
  3. tableau avec cases à cocher
    Par king10481 dans le forum Langage
    Réponses: 1
    Dernier message: 06/06/2008, 09h36
  4. Récupération d'un tableau de cases à cocher
    Par DonPardo dans le forum MVC
    Réponses: 6
    Dernier message: 26/01/2008, 17h06
  5. [CR] Création de tableau et case à cocher
    Par aysse dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 26/11/2003, 17h07

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