Update bdd en utilisant des array et balise selct de form [Résolu]

Signaler
Messages postés
121
Date d'inscription
mercredi 27 octobre 2004
Statut
Membre
Dernière intervention
5 mars 2007
-
Messages postés
121
Date d'inscription
mercredi 27 octobre 2004
Statut
Membre
Dernière intervention
5 mars 2007
-
Bonjour à tous,

J'espère que quelqu'un pourra m'éclairer sur ce point.

Je veux associer une année à une classe à l'aide d'un formulaire utilisant 2 select.
Le nom des select est variable car j'utilise un array
1er select


echo('<select name= "classe[]" style="font-size: 10px;">'
);

echo ( '<option value ="BEP1">BEP1</option>'
);

.....

2eme select (avec boucle for) 1988<$i<2006


echo('<select name = "annee[]" style= "font-size: 10px;">'
);

echo ( "<option value ='"
.$i
."'>"
.$i
."</option>"
);

echo('</select>'
);

Mon probleme concerne l'update que je veux faire dans la bdd.
Je n'arrive pas à récupérer toutes les valeurs des 2 array classe[] et annee[]


$sql
=
("UPDATE lh_classe SET "
. $annee
[0]." = '"
.$classe[0]
. "' WHERE id= '5'"
);
$req
= mysql_query
($sql
)
or die
( mysql_error
()
)
;

Comment je dois faire ?
Merci

4 réponses

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
21
Hello, une boucle.
Si tes 2 tableaux ont le meme nombre d'entrees :
foreach ($annee as $clef = > $valeur) {
$sql =
( "UPDATE lh_classe SET "
. $valeur
." ='"
.$classe[$clef]
."' WHERE id= '5'"
);
$req
= mysql_query
($sql
)
or die
( mysql_error
()
)
;
}
Messages postés
121
Date d'inscription
mercredi 27 octobre 2004
Statut
Membre
Dernière intervention
5 mars 2007

Merci de ta réponse,

Ta methode semble fonctionner si je fais un echo(".$valeur."= '". $classe[$clef] ."');
J'obtiens bien la liste des années avec la classe correspondante.
Pourtant lorsque je lance la requête, j'ai toujours une erreur de syntaxe :

Check the manual that corresponds to your MySQL server version for the right syntax to use near '2000 ='TBPR' WHERE id='5''
La requête prend uniquement en compte la valeur de la dernière année.
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
21
D'ailleurs desole c'est ma requete qui est fausse lol, je ne voulais pas mettre $valeur, j'etais un peu a la masse.
Messages postés
121
Date d'inscription
mercredi 27 octobre 2004
Statut
Membre
Dernière intervention
5 mars 2007

Je reprends la discussion car j'ai encore des problèmes.
La structure ne change pas

mon form :
<select name= class[]>
<option value=classe1>classe1</option>
<option value=classe2>classe2</option>
...
<select name=annee[]>
<option value=2000>2000</option>
<option value=2001>2001</option>
...

ma table lh_classe (en voici une copie)
CREATE TABLE `lh_classe` (
`id` int(4) NOT NULL default '0',
`nom` varchar(50) NOT NULL default '',
`prenom` varchar(50) NOT NULL default '',
`photo` varchar(50) NOT NULL default 'sans.jpg',
`1988` varchar(5) NOT NULL default '',
`1989` varchar(5) NOT NULL default '',
`1990` varchar(5) NOT NULL default '',
`1991` varchar(5) NOT NULL default '',
`1992` varchar(5) NOT NULL default '',
`1993` varchar(5) NOT NULL default '',
`1994` varchar(5) NOT NULL default '',
`1995` varchar(5) NOT NULL default '',
`1996` varchar(5) NOT NULL default '',
`1997` varchar(5) NOT NULL default '',
`1998` varchar(5) NOT NULL default '',
`1999` varchar(5) NOT NULL default '',
`2000` varchar(5) NOT NULL default '',
`2001` varchar(5) NOT NULL default '',
`2002` varchar(5) NOT NULL default '',
`2003` varchar(5) NOT NULL default '',
`2004` varchar(5) NOT NULL default '',
`2005` varchar(5) NOT NULL default '',
`2006` varchar(5) NOT NULL default '',
`2007` varchar(5) NOT NULL default '',
`2008` varchar(5) NOT NULL default '',
`2009` varchar(5) NOT NULL default '',
UNIQUE KEY `id` (`id`)
) TYPE=MyISAM;

ma requete après validation du formulaire
foreach ($annee as $clef => $valeur) {$req mysql_query ( "UPDATE lh_classe SET " .<gras>$valeur." </gras>'".$classe[$clef]."' WHERE id='".$_SESSION['id']."'");
}
ou $valeur correspond à une année et $classe[$clef] correspond à une classe
Malheureusement rien ne se passe ou du moins, aucune valeur varible ne passe !!!
Ca me prend la tête....