Désolé si je ne suis pas clair.
Voici le code contenant les checbox listées dynamiquement:
<?php while($famille=mysql_fetch_assoc($rs_famille)) {
$query_creation = "SELECT * FROM tbl_creation WHERE famille_creation='".$famille['id_famille']."'";
$rs_creation = mysql_query($query_creation);
echo '<tr>
<td align="right"><b>'.$famille['nom_famille'].'</b></td><td>';
while($creation=mysql_fetch_assoc($rs_creation)) { echo
$creation['nom_creation'].' <input type="checkbox" name="type[]" id="type[]" value="'.$creation['id_creation'].'"'; if(strstr($row_rs_client['famille_client'],$creation['id_creation'])) { echo 'checked="checked"';} echo ' /> | ';} echo '</td>
</tr> ';
} ?>
Comme je le disais, la valeur de mes checkbox, envoyée en POST par mon formulaire, peut être un nombre compris entre 1 et 19.
Je fais un implode des valeurs récupérées comme suit:
implode(',',$_POST['type'])
Ce qui permet de récupérer quelque chose comme ca: 1,5,14,18 par exemple dans un seul champs de ma bdd.
Ensuite, en fonction des cases cochées, je crée autant d'enregistrements que de valeurs entre ",". Pour cela, j'ai besoin de vérifier la présence de ces valeurs pour creer les bons enregistrements.
Dans mon exemple, creer un enregistrement pour la valeur 1, un autre pour la valeur 5 puis 14 puis 18.
C'est pour cela que voulais utiliser la fonction strstr() pour vérifier cette présence:
if(strstr(implode(',',$_POST['type']),"2")) //si on trouve "2" dans la chaine alors creer un enregistrement
Seulement j'avais pas pensé au nombre composé de deux chiffres.
C'est pour cela qu'il me faudrait une syntaxe qui dise: si tu trouve exactement le nombre 14 alors ...
ou encore si tu trouves exactement le nombre 1 alors ...
Voila!! j'espere avoir été plus clair mais je suis conscient de ne pas utiliser la bonne technique.
Peut être devrais-je affecter des lettres comme valeur à mes checkbox?