Enième pb de checkbox...

arnold002 Messages postés 121 Date d'inscription mercredi 27 octobre 2004 Statut Membre Dernière intervention 5 mars 2007 - 12 nov. 2004 à 16:16
arnold002 Messages postés 121 Date d'inscription mercredi 27 octobre 2004 Statut Membre Dernière intervention 5 mars 2007 - 13 nov. 2004 à 15:19
Bonjour,
Malgré tous les posts consultés sur ce forum, je ne trouve pas la solution à mon problème de checkbox.

J'ai une BDD 'recette' contenant des recettes avec 3 champs (pour simplifier) :
1 - id
2 - titre
3 - ingredient

J'ai un formulaire avec checkbox de cette forme :
<form name="titre" action="page1.php" method="post">

id
titre
ingredient

Sur la page "page1.php", je crée une requête du type :
$sql = (" SELECT * FROM recette WHERE $choix='$terme' ");

Le mot tapé doit être recherché dans le champ de la BDD correspondant à la checkbox cochée.
Par ex : je tape amande. Si je coche la case 'ingredient', la requête doit rechercher le mot amande dans le champ 'ingredient' de ma BDD.
Si je coche, 'titre' le mot amande doit être recherché dans mon champ 'titre'.
La variable '$titre'passe bien mais pas la variable '$choix'

Je sèche... Quelqu'un peut-il m'aider ?
Merci de vos réponses

5 réponses

cs_lotr Messages postés 128 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 12 août 2005
13 nov. 2004 à 01:29
Bonsoir,

tes checkbox portent toutes le même nom, c'est pour ça que ça ne fonctionne pas.
D'après ton exemple, je dirais que les radio boutons seraient mieux adaptés. Remplace simplement tes type="checkbox" par type="radio".
0
arnold002 Messages postés 121 Date d'inscription mercredi 27 octobre 2004 Statut Membre Dernière intervention 5 mars 2007
13 nov. 2004 à 10:40
Salut,
Je reste sur ma première idée de checkbox.
J'ai modifié mon formulaire :

<form name="choix" action="test4.php" method="post">

ingredient
titre
id

</form>

sur ma page 'test4.php', j'ajoute avant ma requête les lignes suivantes :

for ($i = 0; $i < count($var); $i++)
{
echo $var[$i];

// Pour le test, j'affiche la valeur du checkbox

// je crée la requête SQL
$sql = ("SELECT * FROM recette WHERE valid='1' AND $i = '%$titre%' order by 'titre' asc");

// $titre renvoie au champ texte du formulaire
// $i renvoie la valeur du checkbox coché

// j'envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
.....

Là, pas de message d'erreur.
Ca m'affiche la valeur du checkbox mais ça m'affiche toutes mes recettes et non pas celles contenant la valeur du champ texte saisi.

Je ne comprends pas.
0
arnold002 Messages postés 121 Date d'inscription mercredi 27 octobre 2004 Statut Membre Dernière intervention 5 mars 2007
13 nov. 2004 à 10:42
J'ai quand même essayé avec des types radio mais je veux absolument que ma valeur cochée soit une variable (pour les besoins de ma requête), donc si je donne un nom différent à chaque radio, ça ne va pas.
0
cs_lotr Messages postés 128 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 12 août 2005
13 nov. 2004 à 13:46
Re,

et ça ne fonctionne pas avec quelquechose comme ça ?

<form name="choix" action="test4.php" method="post">

ingredient
titre
id

</form>

<?php
//test4.php'

//valeur du radio bouton coché
$choix = $_POST['var'];
//valeur de la case à remplir
$text = $_POST['titre'];
// requête SQL
$sql = ("SELECT * FROM recette WHERE $choix='$text' order by 'titre' asc");
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
.....
?>

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
arnold002 Messages postés 121 Date d'inscription mercredi 27 octobre 2004 Statut Membre Dernière intervention 5 mars 2007
13 nov. 2004 à 15:19
Re,

J'ai finis par trouver la solution il y a qques minutes. Ca ressemble fort à ta méthode mais j'ai conservé des checkbox

Mon formulaire :
<form name="choix" action="test4.php" method="POST">

ingredient
titre
id

</form>

Ma page de résultat :
foreach ($var as $value)
{
}
// on crée la requête SQL
$sql = ("SELECT * FROM recette WHERE $value LIKE '%$choix%' AND valid='1' order by 'titre' asc");

La, ca m'affiche la requête demandée. Reste à résoudre le pb du multi choix dans les checkbox...

En tout cas, merci beaucoup pour ton aide.
0
Rejoignez-nous