Probleme checkbox

Fermé
Guillaume - Modifié par Guillaume le 5/04/2011 à 10:53
varfendell Messages postés 3256 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 - 5 avril 2011 à 13:31
Bonjour,
j'ai un petit probleme avec un checkbox je vous expliques en fait dans ma table j'ai des champs avec des espaces ex : Centres de vacances le probleme c'est que quand je récupere la valeur ca prend que le premier mot. Je sais pas trop comment faire.
Merci de votre aide coordialement

$sql = "SELECT Libelle FROM interet ORDER BY Libelle";
$req = mysql_query($sql) or die('Erreur SQL : '.$sql);

while($interet = mysql_fetch_assoc($req))
{
echo "<input type='checkbox' name='interet[]' value=".htmlentities($interet['Libelle'])." >".$interet['Libelle']."<br>";
}



for ($i = 0, $c = count($_POST['interet']); $i < $c; $i++)
{
$result = mysql_query("
INSERT INTO list_interet (mail_membre, libelle_interet)
VALUES(
'" . ($_POST["mail"]) . "'
,'" . ($_POST["interet"][$i]) . "')");echo mysql_error();

}


Et j'aimerais aussi savoir s'il est possible que si le champ existe dans ma bdd cocher automatiquement la case!

1 réponse

varfendell Messages postés 3256 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 704
5 avril 2011 à 10:48
Je ne sais pas si ça va changer qqch, mais quand tu as un input, c'est de la forme:

<input type='checkbox' name='blabla1' value='blabla2'>

maintenant si ton blabla1 c'est interet[] et ton blabla2 c'est ".htmlentities($interet['Libelle']).", alors ça devrais te donner:

echo "<input type='checkbox' name='interet[]' value='".htmlentities($interet['Libelle'])."' >"

donc il te manque des simples quote autour de ton blabla2. Pourtant tu l'as fait dans ton values
0
C'est bon lol c'était tout bete merci :)
Sinon j'aimerais aussi savoir s'il est possible que si le champ existe dans ma bdd cocher automatiquement la case!
0
varfendell Messages postés 3256 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 704
5 avril 2011 à 11:08
Pour ça il te suffit de récupéré les métadonnées d'une requete en select * surt la table dont tu souhaite savoir si le chanx existe, et faire une boucle qui verifiera si le champs existe.
Par exemple;

tu veut savoir si la colonne "nom" existe dans la tables parent:

$nom = "nom";
$test = 0;
$requete = "select * from parent;"

/*
tu executes ta requete et stocke les meta données dans la premiere ligne du
tableau à deux dimensions qui recupere les info, donc resultat[0] contiendra les noms des colonne de la table parent et tu fait ta boucle dessus
*/

tu boucle comme suis:

for (i = 0; i < resultat[0].getsize())
{
if (resultat[0][i] = $nom)
{
$test = 1;
}
}

et ensuite pour savoir si la colonne existe, regarde si $test = 1, si ce n'est aps le cas, c'est que la colonne n'existe pas
0
Donc la ma requête me permet de voir a quelle liste est abonné un utilisateur j'ai changé un peu ce que t'avais fait pour l'adapter mais ca marche pas vraiment je continue de chercher je met ce que j'ai fait.

$sqlinteret="Select libelle from list_interet Where mail_membre='".$_SESSION['email']."'";
$reqinteret = mysql_query($sqlinteret) or die('Erreur SQL : '.$sqlinteret);
$champsinteret = mysql_fetch_assoc($reqinteret);
$nbinteret=mysql_num_rows($reqinteret);

//recupération des listes interets
$sql = "SELECT Libelle FROM interet ORDER BY Libelle";
$req = mysql_query($sql) or die('Erreur SQL : '.$sql);

while($interet = mysql_fetch_assoc($req))
{
for ($i=0,$i<$nbinteret,$i++)
{
if ($champsinteret[$i] ==$interet)
{
echo "<input type='checkbox' checked='checked' name='interet[]' value='".htmlentities($interet['Libelle'])."' >".$interet['Libelle'].""<br>;
}
}
echo "<input type='checkbox' name='interet[]' value='".htmlentities($interet['Libelle'])."' >".$interet['Libelle'].""<br>;

}



Et donc la par rapport au code du dessus
0
varfendell Messages postés 3256 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 704
5 avril 2011 à 13:31
tu cherches à savoir s'il y a un champs libelle dans la table list_interet , donc ta requete sera une requete * pour recupéré toute les ligne de ta table. Ensuite tu devra recupérer les metadonnées. Je ne sais plus comment on fait, renseigne toi sur le web, mais c'est faisable a 100%. Les metadonnées de ta requete sont en faite les nom des colonnes.
Ton resultat est un tableau a deux dimension:
res[i][j] sera l'element ligne i colonne j.

par exemple:

|nom | prenom |
|---------------- |
|aaa | aaaaaa |

tu aura
res[0][0] = nom
res[0][1] =prenom
res[1][0] =aaa
res[1][1] =aaaaa
donc res[0] contiendra un tableau qui lui contiendra les nom de tes colonnes
0