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

Langage PHP Discussion :

Cocher Checkbox en fonction de la BDD


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Par défaut Cocher Checkbox en fonction de la BDD
    Bonjour,

    J'ai une page php, qui me sert à modifier des infos dans ma bdd.
    Quand j'ouvre ma page elle doit récuperer des infos, et me cocher les bonnes checkbox.

    J'ai trouvé la méthode suivante, qui fonctionne. Mais cela fait beaucoup de code, et si ma page etait trés longue, cela mettrai beaucoup de temps.

    Avez vous des idées pour un code plus court ?

    Merci pour votre aide.
    Mikael

    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
     
    			<tr>
                 <td class="bold_right">Frequence</td>
                   <td>
    			     <input type="checkbox" name="frequence[]" value="Annee" 
    				 <?php
    				 	$sql4="SELECT frequence FROM Activite WHERE id_act='$activ'";
    					$res_sql4=mysql_query($sql4)
    						or die (mysql_error());					
    					while ($data4 = mysql_fetch_assoc($res_sql4)){ 
    						extract($data4);
    						$tab=explode(',',$data4['frequence']);
    						for($i=0;$i<sizeof($tab);$i++) {		
    							if($tab[$i] == 'Annee') echo " checked='checked'";
    						}
    					}
    				 ?>
    				 />Toute l'année
                     <input type="checkbox" name="frequence[]" value="Vacances"
    				 			 <?php
    				 	$sql4="SELECT frequence FROM Activite WHERE id_act='$activ'";
    					$res_sql4=mysql_query($sql4)
    						or die (mysql_error());					
    					while ($data4 = mysql_fetch_assoc($res_sql4)){ 
    						extract($data4);
    						$tab=explode(',',$data4['frequence']);
    						for($i=0;$i<sizeof($tab);$i++) {		
    							if($tab[$i] == 'Vacances') echo " checked='checked'";
    						}
    					}
    				 ?>
    				 />Vacances
    				 <input type="checkbox" name="frequence[]" value="Occasionnel"
    				 			 <?php
    				 	$sql4="SELECT frequence FROM Activite WHERE id_act='$activ'";
    					$res_sql4=mysql_query($sql4)
    						or die (mysql_error());					
    					while ($data4 = mysql_fetch_assoc($res_sql4)){ 
    						extract($data4);
    						$tab=explode(',',$data4['frequence']);
    						for($i=0;$i<sizeof($tab);$i++) {		
    							if($tab[$i] == 'Occasionnel') echo " checked='checked'";
    						}
    					}
    				 ?>
    				 />Occasionnel
                     </td></tr>

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    à priori tu peux tout factoriser en une seule requête.
    Pourrais-tu poster le reste du code histoire de voir comment tu récupères $activ

  3. #3
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Voici une idée de factorisation :
    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
    <?php
     
    $sql  = "SELECT frequence FROM Activite WHERE id_act = $activ";
    $exec = mysql_query($sql) or die (mysql_error());
     
    $checked = array('annee' => '', 'vacances' => '', 'occasionnel' => '');
     
    while($row = mysql_fetch_assoc($exec)) {
        $freq = explode(',', $row['frequence']);
     
        if (in_array('Annee', $freq, true)) {
            $checked['annee'] = 'checked="checked"';
        }
     
        if (in_array('Vacances', $freq, true)) {
            $checked['vancances'] = 'checked="checked"';
        }
     
        if (in_array('Occasionnel', $freq, true)) {
            $checked['occasionnel'] = 'checked="checked"';
        }
    }
    ?>
    <tr>
        <td class="bold_right">Frequence</td>
        <td>
            <input type="checkbox" name="frequence[]" value="Annee" <?php echo $checked['annee']?> />Toute l'année
            <input type="checkbox" name="frequence[]" value="Vacances" <?php echo $checked['vacances']?> />Vacances
            <input type="checkbox" name="frequence[]" value="Occasionnel" <?php echo $checked['occasionnel']?> />Occasionnel
         </td>
    </tr>
    A vue de nez, y'a un truc qui ne colle pas avec ta table Activite. Tu ne t'amuses pas à faire un explode sur un champ pour récupérer des valeurs de cases à cocher...

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Par défaut
    Salut,

    Je recupère ma variable $activ comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    		if (isset($_GET['activ'])) {	
    	    $activ=mysql_real_escape_string($_GET['activ']);
     
    		$sql="SELECT * FROM Activite WHERE id_act='$activ'";
            }
    		$res_sql=mysql_query($sql)
    		     or die (mysql_error);
     
    		while($data = mysql_fetch_assoc($res_sql)){ 
    			extract($data);

  5. #5
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Euh y'a un vraiment un os :
    quand tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql="SELECT * FROM Activite WHERE id_act='$activ'";
    Tu récupères déjà le champ frequence. Pourquoi refaire une requête spécifique pour ce champ par la suite ?

    Poste le code complet de ton script stp.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 407
    Par défaut
    Voici mon 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
    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
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
     
    <body>
    	<div id="wrapper">
    		<div id="header">
    			<?php
    			include ("menu.php");
    			?>
    		</div>
    		<div id="content">
     			<div id="ColonneGauche" class="cadre">
      				<?php
    					echo "<h1>Administration ... (session : ".$row['firstName'].")</h1>\n";         #27
     
    					$sql = "SELECT TypeCompte FROM Member 
    						WHERE loginName='{$_SESSION['logname']}'";
    					$result2 = mysql_query($sql,$cxn)
    						or die("Couldn't execute query");
    					$data = mysql_fetch_assoc($result2);
     
    					if ($data['TypeCompte'] == user) {
    						echo 'Vous n\'etes pas autorisé à utiliser ce service';
    					}
     
    					if ($data['TypeCompte'] == admin || $data['TypeCompte'] == animateur) {
     
     
     
    		if (isset($_GET['activ'])) {	
    	    $activ=mysql_real_escape_string($_GET['activ']);
     
    		$sql="SELECT * FROM Activite WHERE id_act='$activ'";
            }
    		$res_sql=mysql_query($sql)
    		     or die (mysql_error);
     
    		while($data = mysql_fetch_assoc($res_sql)){ 
    			extract($data);
    		?>
     
    		<h2>Modifier l'activité : <?php echo $data['activite'] ?></h2>
     
    			<form method="POST" action="Trait_Modif_activite.php?activ=<?php echo $activ?>">
    			<table class="none">
    			 <tr>
                 <td class="bold_right">ID</td>                            
    			   <td><input type="text" name="id" readonly="readonly"
    					  value="<?php echo $data['id_act'] ?>"	   
                          size="43" id="id"></td></tr>	
    			           <tr>
    			           <tr>
                 <td class="bold_right">Date d'ajout</td>                            
    			   <td><input type="text" name="DateAjout" readonly="readonly"
    					  value="<?php echo $data['DateAjout'] ?>"	   
                          size="43" id="DateAjout"></td></tr>	
     
                 <td class="bold_right">Nom de l'activité</td>                            
    			   <td><input type="text" name="activite"
    					  value="<?php echo $data['activite'] ?>"	   
                          size="43" id="activite"></td></tr>	
     
    			           <tr>
                 <td class="bold_right">Catégorie</td>                            
    			   <td><input type="text" name="categorie"
    					  value="<?php echo $data['categorie'] ?>"	   
                          size="43" id="categorie"></td></tr>	
     
    			<tr>
                 <td class="bold_right">Sous-Catégorie</td>                            
    			   <td><input type="text" name="sscategorie"
    					  value="<?php echo $data['sscategorie'] ?>"	   
                          size="43" id="sscategorie"></td></tr>	
     
    			<tr>
    				<td class="bold_right">Description</td> 
    				<td>
    			   <textarea cols="80" class="ckeditor" id="editeur" name="editeur" rows="50"><?php echo $data['description'] ?></textarea>
    			   	<script type="text/javascript">
    					CKEDITOR.replace( 'editeur' );
    				</script>
    				</td>
    			</tr>
     
    			<tr>
                 <td class="bold_right">Frequence</td>
                   <td>
    			     <input type="checkbox" name="frequence[]" value="Annee" 
    				 <?php
    				 	$sql4="SELECT frequence FROM Activite WHERE id_act='$activ'";
    					$res_sql4=mysql_query($sql4)
    						or die (mysql_error());					
    					while ($data4 = mysql_fetch_assoc($res_sql4)){ 
    						extract($data4);
    						$tab=explode(',',$data4['frequence']);
    						for($i=0;$i<sizeof($tab);$i++) {		
    							if($tab[$i] == 'Annee') echo " checked='checked'";
    						}
    					}
    				 ?>
    				 />Toute l'année
                     <input type="checkbox" name="frequence[]" value="Vacances"
    				 			 <?php
    				 	$sql4="SELECT frequence FROM Activite WHERE id_act='$activ'";
    					$res_sql4=mysql_query($sql4)
    						or die (mysql_error());					
    					while ($data4 = mysql_fetch_assoc($res_sql4)){ 
    						extract($data4);
    						$tab=explode(',',$data4['frequence']);
    						for($i=0;$i<sizeof($tab);$i++) {		
    							if($tab[$i] == 'Vacances') echo " checked='checked'";
    						}
    					}
    				 ?>
    				 />Vacances
    				 <input type="checkbox" name="frequence[]" value="Occasionnel"
    				 			 <?php
    				 	$sql4="SELECT frequence FROM Activite WHERE id_act='$activ'";
    					$res_sql4=mysql_query($sql4)
    						or die (mysql_error());					
    					while ($data4 = mysql_fetch_assoc($res_sql4)){ 
    						extract($data4);
    						$tab=explode(',',$data4['frequence']);
    						for($i=0;$i<sizeof($tab);$i++) {		
    							if($tab[$i] == 'Occasionnel') echo " checked='checked'";
    						}
    					}
    				 ?>
    				 />Occasionnel
                     </td></tr>
    <!---			   
                     <select name="frequence" id="frequence">
                     <option <?php echo ($data['frequence']=="Quotidien")?'selected="selected"':''; ?>>Quotidien</option>
                     <option <?php echo ($data['frequence']=="Hebdomadaire")?'selected="selected"':''; ?>>Hebdomadaire</option>
    				 <option <?php echo ($data['frequence']=="Bi-Mensuel")?'selected="selected"':''; ?>>Bi-Mensuel</option>
                     <option <?php echo ($data['frequence']=="Mensuel")?'selected="selected"':''; ?>>Mensuel</option>
    				 <option <?php echo ($data['frequence']=="Vacances")?'selected="selected"':''; ?>>Vacances</option>
                     <option <?php echo ($data['frequence']=="Occasionnel")?'selected="selected"':''; ?>>Occasionnel</option>
                   </select>  --->
     
    			   </td>
               </tr>
     
    			<tr>
                 <td class="bold_right">Plage</td>
                   <td>                  
                     <select name="plage" id="plage">
                     <option <?php echo ($data['plage']=="Matin")?'selected="selected"':''; ?>>Matin</option>
                     <option <?php echo ($data['plage']=="Après-midi")?'selected="selected"':''; ?>>Après-midi</option>
    				 <option <?php echo ($data['plage']=="Soirée")?'selected="selected"':''; ?>>Soirée</option>
                     <option <?php echo ($data['plage']=="Journée")?'selected="selected"':''; ?>>Journée</option>
                   </select></td>
               </tr>
     
    		   <tr>
                 <td class="bold_right">Planning</td>
                   <td>                  
                     <select name="planning" id="planning">
                     <option <?php echo ($data['planning']=="Lundi")?'selected="selected"':''; ?>>Lundi</option>
                     <option <?php echo ($data['planning']=="Mardi")?'selected="selected"':''; ?>>Mardi</option>
    				 <option <?php echo ($data['planning']=="Mercredi")?'selected="selected"':''; ?>>Mercredi</option>
    	             <option <?php echo ($data['planning']=="Jeudi")?'selected="selected"':''; ?>>Jeudi</option>
                     <option <?php echo ($data['planning']=="Vendredi")?'selected="selected"':''; ?>>Vendredi</option>
    				 <option <?php echo ($data['planning']=="Samedi")?'selected="selected"':''; ?>>Samedi</option>
    				 <option <?php echo ($data['planning']=="Dimanche")?'selected="selected"':''; ?>>Dimanche</option>
                     <option <?php echo ($data['planning']=="Plusieurs Jours")?'selected="selected"':''; ?>>Plusieurs Jours</option>
                   </select></td>
               </tr>
     
    		   <tr>
                 <td class="bold_right">Public</td>
                   <td>                  
                     <select name="public" id="public">
                     <option <?php echo ($data['public']=="Enfants")?'selected="selected"':''; ?>>Enfants</option>
                     <option <?php echo ($data['public']=="Adolescents")?'selected="selected"':''; ?>>Adolescents</option>
    				 <option <?php echo ($data['public']=="Adultes")?'selected="selected"':''; ?>>Adultes</option>
    	             <option <?php echo ($data['public']=="Tous")?'selected="selected"':''; ?>>Tous</option>
                   </select></td>
               </tr>
     
    		   <tr>
                 <td class="bold_right">Lieu</td>
                   <td>                  
                     <select name="lieu" id="lieu">
                     <option <?php echo ($data['lieu']=="Harpe")?'selected="selected"':''; ?>>Ferme de la Harpe</option>
                     <option <?php echo ($data['lieu']=="Parc")?'selected="selected"':''; ?>>Maison du Parc</option>
    				 <option <?php echo ($data['lieu']=="Beauregard")?'selected="selected"':''; ?>>Beauregard</option>
    	             <option <?php echo ($data['lieu']=="Autres")?'selected="selected"':''; ?>>Autres</option>
                   </select></td>
               </tr>
     
    		   <tr>
                 <td class="bold_right">Cours</td>
                   <td>                  
                     <select name="cours" id="cours">
                     <option <?php echo ($data['cours']=="Particulier")?'selected="selected"':''; ?>>Particulier</option>
                     <option <?php echo ($data['cours']=="Collectif")?'selected="selected"':''; ?>>Collectif</option>
                   </select></td>
               </tr>
     
    			<tr>
                <td class="bold_right">Animateur</td>
                   <td><select name="animateur" id="animateur">
    					<?
    						$res = mysql_query("SELECT * FROM Member WHERE TypeCompte='animateur' ORDER BY lastName");
    						while($row = mysql_fetch_assoc($res)){
    							extract($row);
    							echo "<option value='".$row["loginName"]."' ";
    							echo ($data['animateur']==$row["loginName"])?'selected="selected"':'';
    							echo ">".$row["lastName"]." ".$row["firstName"]." (".$row["loginName"].")</option>";
    						}
    					?>
                      </select>Uniquement le prénom de l'animateur apparaitra sur le site</td></tr>	
     
    		   <tr>
                 <td class="bold_right">Tarif</td>
                   <td>                  
                     <select name="tarif" id="tarif">
                     <option <?php echo ($data['tarif']=="moins de 30 €")?'selected="selected"':''; ?>>moins de 30 €</option>
    				 <option <?php echo ($data['tarif']=="de 30 à 100 €")?'selected="selected"':''; ?>>de 30 à 100 €</option>
    				 <option <?php echo ($data['tarif']=="de 100 à 250 €")?'selected="selected"':''; ?>>de 100 à 250 €</option>
    				 <option <?php echo ($data['tarif']=="supérieur à 250 €")?'selected="selected"':''; ?>>supérieur à 250 €</option>
                   </select></td>
               </tr>
     
    			<tr>
                 <td class="bold_right">Photo</td>                            
    			   <td><input type="text" name="photo"
    					  value="<?php echo $data['Photo'] ?>"	   
                          size="43" id="photo"></td></tr>
     
    			<tr>
                 <td class="bold_right">Visible sur le site</td>
                   <td>                  
                     <select name="visible" id="visible">
                     <option <?php echo ($data['Visible']=="O")?'selected="selected"':''; ?>>O</option>
                     <option <?php echo ($data['Visible']=="N")?'selected="selected"':''; ?>>N</option>
                   </select></td>
               </tr>
    		   <tr>
    				<td class="bold_right">News</td> 
    				<td>
    			   <textarea cols="80" class="ckeditor" id="news" name="news" rows="50"><?php echo $data['news'] ?></textarea>
    			   	<script type="text/javascript">
    					CKEDITOR.replace( 'news' );
    				</script>
    				</td>
    			</tr>
     
    			</table>	
    				<input type="submit" value="Mettre à jour" />
    			</form>
    		<?php
    		}
    		}
    		?>
     
    			</div>
    			<div id="ColonneDroite" class="cadre">
    			<?php
    			include ("colonneDroite.php");
    			?>
    			</div>
    		</div>
     
    		<div id="footer">
    		<?php
    		include ("footer.php");
    		?>
    		</div>
    	</div>
    </body>
    </html>
    Effectivement ma requete ne sert à rien et fait doublon avec la premiere.
    J'ai fait ça rapidement.
    Ton code est bien mais par contre j'ai l'impression que seule la première case se coche et pas les autres.

    Merci pour ton aide.

  7. #7
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    J'ai repris entièrement ton code et cela n'a pas été une sinécure crois-moi.
    Tu y trouveras des commentaires sur les devinettes auxquelles j'ai été confronté.
    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
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    <?php
     
    /*
    je ne vois pas l'intérêt d'aller interroger la base pour extraire le type de compte de l'utilisateur
    une fois identifié, le type de compte et plus généralement les données de l'utilisateur devraient être stockées
    en session dans une clé de groupe comme par exemple $_SESSION['user'] et ne pas être éparpillées
    je conserve cette approche, à toi d'adapter ton code
    */
     
    // fonction d'échappement pour le rendu : je suppose que le site est en utf-8 et PHP 5.3+
    // astuce : on factorise aussi le mot-clé echo
    $hsc = function($p) { echo htmlspecialchars($p, ENT_QUOTES, 'UTF-8'); };
     
    $data = array();
     
    if (isset($_GET['activ'])) {
        $sql  = "SELECT * FROM Activite WHERE id_act = '".mysql_real_escape_string($_GET['activ'])."'";
        $exec = mysql_query($sql) or die(mysql_error());
        $data = mysql_fetch_assoc($exec);
        $url  = 'Trait_Modif_activite.php?activ='.$_GET['activ'];
     
     
        /* FACTORISATION DU RENDU DU CODE POUR LA LISIBILITÉ */
        // fonction case cochée pour la fréquence
        $checked =
            function($p) use ($data)
            {
                echo (stripos($data['frequence'], $p) !== false) ? 'checked="checked"' : '';
            };
     
        // fonction pour les zones de liste qui return une ligne <option></option> entièrement formatée
        $build_option =
            function($key, $value, $txt = null) use ($data, $hsc)
            {
                $inner_html  = ($txt === null) ? $value : $txt;
                $is_selected = ($data[$key] === $value) ? ' selected="selected"' : '';
                return
    <<<HTML
    <option value="{$hsc($value)}"{$is_selected}>{$hsc($inner_html)}</option>
    HTML;
            };
     
        // fonction pour les zones de liste qui echo une ligne <option></option> entièrement formatée
        $sel_option = function($key, $value, $txt = null) use ($data, $build_option) { echo $build_option($key, $value, $txt); };
     
     
        // liste des animateurs
        $anim = array();
        $sql  = 'SELECT * FROM Member WHERE TypeCompte = "animateur" ORDER BY lastName';
        $exec = mysql_query($sql) or die(mysql_error());
        while($row = mysql_fetch_assoc($exec)) {
            $anim[] = $build_option('animateur', $row['loginName'], "{$row['lastName']} {$row['firstName']} ({$row['loginName']})");
        }
    }
    ?>
    <body>
        <div id="wrapper">
            <div id="header"><?php include 'menu.php' ?></div>
            <div id="content">
                <div id="ColonneGauche" class="cadre">
                <?php if (empty($_SESSION['user']) || ($_SESSION['user']['type'] === 'user')): ?>
                    Vous n'etes pas autorisé à utiliser ce service
     
                <?php elseif (empty($data)): ?>
                    Pas de données à afficher
     
                <?php else: ?>
                    <h1>Administration ... (session : <?php $hsc($_SESSION['user']['prenom']) ?>)</h1>
                    <h2>Modifier l'activité : <?php $hsc($data['activite']) ?></h2>
                    <form method="post" action="<?php echo $url ?>">
                        <table class="none">
                            <tr>
                                <td class="bold_right">ID</td>
                                <td><input id="id" type="text" name="id" value="<?php $hsc($data['id_act']) ?>" size="43" readonly="readonly" /></td>
                            </tr>
                            <tr>
                                <td class="bold_right">Date d'ajout</td>
                                <td><input id="DateAjout" type="text" name="DateAjout" value="<?php $hsc($data['DateAjout']) ?>" size="43" readonly="readonly" /></td>
                            </tr>
                            <tr>
                                <td class="bold_right">Nom de l'activité</td>
                                <td><input id="activite" type="text" name="activite" value="<?php $hsc($data['activite']) ?>" size="43" /></td>
                            </tr>
                            <tr>
                                <td class="bold_right">Catégorie</td>
                                <td><input id="categorie" type="text" name="categorie" value="<?php $hsc($data['categorie']) ?>" size="43" /></td>
                            </tr>
                            <tr>
                                <td class="bold_right">Sous-Catégorie</td>
                                <td><input id="sscategorie" type="text" name="sscategorie" value="<?php $hsc($data['sscategorie']) ?>" size="43" /></td>
                            </tr>
                            <tr>
                                <td class="bold_right">Description</td>
                                <td>
                                    <textarea cols="80" class="ckeditor" id="editeur" name="editeur" rows="50"><?php $hsc($data['description']) ?></textarea>
                                    <script type="text/javascript">CKEDITOR.replace( 'editeur' );</script>
                                </td>
                            </tr>
                            <tr>
                                <td class="bold_right">Frequence</td>
                                <td>
                                    <input type="checkbox" name="frequence[]" value="Annee" <?php $checked('Annee') ?> />Toute l'année
                                    <input type="checkbox" name="frequence[]" value="Vacances" <?php $checked('Vacances')  ?> />Vacances
                                    <input type="checkbox" name="frequence[]" value="Occasionnel" <?php $checked('Occasionnel')  ?> />Occasionnel
                                 </td>
                            </tr>
                            <tr>
                                <td class="bold_right">Plage</td>
                                <td>
                                    <select name="plage" id="plage">
                                        <?php
                                        $sel_option('plage', 'Matin');
                                        $sel_option('plage', 'Après-midi');
                                        $sel_option('plage', 'Soirée');
                                        $sel_option('plage', 'Journée');
                                        ?>
                                    </select>
                                </td>
                            </tr>
                            <tr>
                                <td class="bold_right">Planning</td>
                                <td>
                                    <select name="planning" id="planning">
                                        <?php
                                        $sel_option('planning', 'Lundi');
                                        $sel_option('planning', 'Mardi');
                                        $sel_option('planning', 'Mercredi');
                                        $sel_option('planning', 'Jeudi');
                                        $sel_option('planning', 'Vendredi');
                                        $sel_option('planning', 'Samedi');
                                        $sel_option('planning', 'Dimanche');
                                        $sel_option('planning', 'Plusieurs Jours');
                                        ?>
                                    </select>
                                </td>
                            </tr>
    '                       <tr>
                                <td class="bold_right">Public</td>
                                <td>
                                    <select name="public" id="public">
                                        <?php
                                        $sel_option('public', 'Enfants');
                                        $sel_option('public', 'Adolescents');
                                        $sel_option('public', 'Adultes');
                                        $sel_option('public', 'Tous');
                                        ?>
                                    </select>
                                </td>
                            </tr>
                            <tr>
                                <td class="bold_right">Lieu</td>
                                <td>
                                    <select name="lieu" id="lieu">
                                        <?php
                                        $sel_option('lieu', 'Harpe', 'Ferme de la Harpe');
                                        $sel_option('lieu', 'Parc', 'Maison du Parc');
                                        $sel_option('lieu', 'Beauregard');
                                        $sel_option('lieu', 'Autres')
                                        ?>
                                    </select>
                                </td>
                            </tr>
                            <tr>
                                <td class="bold_right">Cours</td>
                                <td>
                                    <select name="cours" id="cours">
                                        <?php
                                        $sel_option('cours', 'Particulier');
                                        $sel_option('cours', 'Collectif');
                                        ?>
                                    </select>
                                </td>
                            </tr>
                            <tr>
                                <td class="bold_right">Animateur</td>
                                <td>
                                    <select name="animateur" id="animateur">
                                        <?php echo implode("\n", $anim) ?>
                                    </select>Uniquement le prénom de l'animateur apparaitra sur le site
                                </td>
                            </tr>
                            <tr>
                                <td class="bold_right">Tarif</td>
                                <td>
                                    <select name="tarif" id="tarif">
                                        <?php
                                        $sel_option('tarifs', 'moins de 30 €');
                                        $sel_option('tarifs', 'de 30 à 100 €');
                                        $sel_option('tarifs', 'de 100 à 250 €');
                                        $sel_option('tarifs', 'supérieur à 250 €');
                                        ?>
                                    </select>
                                </td>
                            </tr>
                            <tr>
                                <td class="bold_right">Photo</td>
                                <td><input type="text" name="photo" value="<?php $hsc($data['Photo']) ?>" size="43" id="photo"></td>
                            </tr>
                            <tr>
                                <td class="bold_right">Visible sur le site</td>
                                <td>
                                    <select name="visible" id="visible">
                                        <?php
                                        $sel_option('Visible', 'O');
                                        $sel_option('Visible', 'N');
                                        ?>
                                    </select>
                                </td>
                            </tr>
                            <tr>
                                <td class="bold_right">News</td>
                                <td>
                                    <textarea cols="80" class="ckeditor" id="news" name="news" rows="50"><?php $hsc($data['news']) ?></textarea>
                                    <script type="text/javascript">CKEDITOR.replace( 'news' );</script>
                                </td>
                            </tr>
                        </table>
                    </form>
                <?php endif ?>
                </div>
                <div id="ColonneDroite" class="cadre"><?php include 'colonneDroite.php' ?></div>
            </div>
            <div id="footer"><?php include 'footer.php' ?></div>
        </div>
    </body>
    </html>
    Je ne le répeterais jamais assez mais il faut absolument soigner la présentation de son code, tu devrais lire un peu les bonnes pratiques par ici.
    Quand tu ne comprends pas le pourquoi d'une fonction, il est préférable d'aller bouquiner un peu la doc PHP : extract().
    Avec mon code, je pense que tu vas découvrir la syntaxe alternative et les fonctions anonymes.
    Bref un peu de lecture en perspective.

    Un dernier point, essaie de séparer au maximum les traitements PHP du rendu HTML. En gros, tu dois éviter de planter en plein milieu du code HTML un gros bloc de PHP. Remonte toujours ces traitements au début du script.

    Comme toujours ça sort du four, rien n'a été testé donc croisage des doigts...

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 29/07/2011, 00h25
  2. VBA: Cocher automatiquement checkbox en fonction de chiffre
    Par jp222 dans le forum Macros et VBA Excel
    Réponses: 28
    Dernier message: 14/04/2009, 06h44
  3. cocher une checkbox en fonction de son nom
    Par boss_gama dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 08/09/2006, 16h42
  4. [MySQL] Précocher des checkbox en fonction de la BDD ?
    Par renaud26 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/03/2006, 09h22
  5. Bouton pour cocher checkbox
    Par eidole62 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 15/04/2005, 16h28

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