Probleme d'insertion de données à partir d'un formulaire

sabou94 Messages postés 158 Date d'inscription vendredi 12 mars 2004 Statut Membre Dernière intervention 17 avril 2007 - 1 juin 2005 à 15:40
sabou94 Messages postés 158 Date d'inscription vendredi 12 mars 2004 Statut Membre Dernière intervention 17 avril 2007 - 2 juin 2005 à 09:45
Bonjour,

Cette page est l'ajout d'une nouvelle recette (de cuisine).


Mon probleme est dans l'insertion des ingrédients. En effet, j'ai deux
listes. Dans la 1ere il y a tous les ingrédients de la table, dans la
2eme ce sont les ingrédients qu'on choisit pour la recette. Ainsi, je
voudrais ajouter dans ma table cette recette avec pour les ingrédients
leur numéro (clé primaire).


Comment procéder?

Voici la page où se trouve mon probleme :



<SCRIPT LANGUAGE= "JavaScript">

function Deplacer(l1,l2) {

if (l1.options.selectedIndex>=0) {

o=new Option(l1.options[l1.options.selectedIndex].text,l1.options[l1.options.selectedIndex].value);

l2.options[l2.options.length]=o;

l1.options[l1.options.selectedIndex]=null;

}

else {

alert("Aucun ingrédient sélectionnée");

}

}

</SCRIPT>

<?

include('connect.php');

$req=("SELECT id,nom FROM ings ORDER BY nom");

$ings_rq=mysql_query($req,$idConnexion);

$ings="";

while(list($ings_id,$ings_nom)=mysql_fetch_row($ings_rq))

$ings.="<option value=$ings_id>$ings_nom</option>";



if($nom)

{

$recette=$_POST['recette'];

$nb=$_POST['nombre'];


$txt=$nb.'


'.$recette;

// $ings=$_REQUEST['ings'];

$req=("INSERT INTO recettes (nom,type,ings,txt) VALUES ('$nom','$type','$ings','$txt')");

mysql_query($req,$idConnexion) or die("erreur mysql : ".mysql_error());

die("<script>document.location.href='index2.php';</script>");

}



?>

<html>

<head>

<title>Ajouter une recette</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">



Nouvelle recette


</head>





<form method="post" name="formulaire" >

Nom :





Type :


<select name ='type'><option>Entrée<option>Plat<option>Dessert</select>


Ingrédients
proposés

<SELECT name= "req_ings"
size=6 style="width:120px" multiple> <? echo $ings?>

</SELECT>,

>>"
onClick="Deplacer(this.form.req_ings,this.form.ings)">

,

Ingrédients
retenus

<SELECT name="ings"
id="ing" size=6 multiple style="width:120px" onChange="var
ingre=this.value">

</SELECT>


Nombre de personnes :


<select name ="nb" id= 'nb'
onchange="var chaine=document.getElementById('txt').value.substr(0,14);
document.getElementById('txt').value=chaine + this.value">

<option>1</option>

<option>2</option>

<option>3</option>

<option>4</option>

<option>5 et plus </option>

</select>




Nombre :










Recette :


<textarea name ="recette" id='recette' style="width: 400px; height:290px;" >

</textarea>








</form>





</html>


Merci d'avance de votre aide.
sabrina

6 réponses

coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
1 juin 2005 à 16:40
Salut!

Quel est le pb au fait?



@++



R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
sabou94 Messages postés 158 Date d'inscription vendredi 12 mars 2004 Statut Membre Dernière intervention 17 avril 2007
1 juin 2005 à 17:25
Et bien le rajout des ingrédients ne marche pas, je ne sais pas
comment faire pour que ce soit les numéros des ingrédients séléctionnés
qui soient inserés dans la table!! peux tu m'aider?
sabrina
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
1 juin 2005 à 19:07
Salut!

Tu as une erreur mysql?

Une des erreur classiaque, c'est de ne pas faire de addslashes (
transforme les ' en \' pour l'insertion dans la base de données)...



Autrement:

if($nom)

>> Tu es sure que c'est exécuté?



Et si tu remplace:

if($nom)

{

$recette=$_POST['recette'];

$nb=$_POST['nombre'];


$txt=$nb.'


'.$recette;

// $ings=$_REQUEST['ings'];

$req=("INSERT INTO recettes (nom,type,ings,txt) VALUES ('$nom','$type','$ings','$txt')");

mysql_query($req,$idConnexion) or die("erreur mysql : ".mysql_error());

die("<script>document.location.href='index2.php';</script>");

}



Par:

if($nom)

{

echo 'Test';

$recette=$_POST['recette'];

$nb=$_POST['nombre'];


$txt=$nb.'


'.$recette;

// $ings=$_REQUEST['ings'];

$req=("INSERT INTO recettes (nom,type,ings,txt) VALUES ('$nom','$type','$ings','$txt')");

mysql_query($req,$idConnexion) or die("erreur mysql : ".mysql_error());

die("<script>document.location.href='index2.php';</script>");

}



Ca affiche test?



@++



R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
sabou94 Messages postés 158 Date d'inscription vendredi 12 mars 2004 Statut Membre Dernière intervention 17 avril 2007
1 juin 2005 à 19:32
Oui ca marche puisque tout le reste est ajouté dans ma table!! mais
j'ai pas fait le code justement pour les ingrédients, j'ai aucune idée
de comment faire....

snifff....
sabrina
0

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

Posez votre question
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
2 juin 2005 à 07:16
Salut!

Dsl, j'étais à la masse...



Alors, remplace le nom de ton select de:
<SELECT name="req_ings" size=6 style="width:120px" multiple> <? echo $ings?>

</SELECT>



En:

<SELECT name="req_ings[]" size=6 style="width:120px" multiple> <? echo $ings?>

</SELECT>



Ensuite, dans ton code PHP, $_POST['req_ings'] est un tableau, donc tu peux faire:

- transformation en chaîne de caractères

$ingredients = implode( ', ', $_POST['req_ings'] );



- utilisation comme teableau

foreach( $_POST['req_ings'] as $ingredient )

echo $ingredient . '
';



Donc ca dépend si tu veux mettre une liste de tes arguments dans un
champ texte ( donc plutôt implode ) ou si tu dois effectuer des
requêtes ou autres, alors plutôt travailler avec le tableau...



@++



R@f


www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
sabou94 Messages postés 158 Date d'inscription vendredi 12 mars 2004 Statut Membre Dernière intervention 17 avril 2007
2 juin 2005 à 09:45
Oui mais le probleme c que c'est pas les ingrédients de cette liste
que je veux inserer (celle la c la liste de TOUS les ingrédients) mais
ceux de la 2eme la liste dans laquelle il y aura que les ingrédients
séléctionnées dans la 1ere liste. Tu me comprends? donc je peux pas
faire la meme chose? je commence à etre desespérée, c'est une activité
que je dois presenter au bts la semaine prochaine..... :(

Merci de m'aider....
sabrina
0
Rejoignez-nous