Variables en masse ($_POST et UPDATE)

Petit nouveau ! | 4 Messages

30 mars 2007, 03:14

Bonjour à tous,

je suis en train d'adapter un petite interface PHP qui me permettra de mettre à jour des données (les tarifs des produits d'une boutique en l'occurence).

Dans mon interface, l'ensemble des produits est appelé en 1 seule fois dans un grand tableau lui même contenu dans un formulaire. Le problème se pose au niveau du script de mise à jour après la validation : j'ai effectivement plus de 150 produits, il n'est donc pas vraiment question (suis un peu fainéant) que j'écrive :
$produit1 = $_POST['produit1'];
$produit2 = $_POST['produit2'];

etc.
J'utilise donc :
extract($_POST);
et ma vie est plus belle ! :wink:

Seulement, le problème se pose à nouveau au niveau de la requête MySQL ; je n'ai pas du tout envie d'écrire :
$query = "UPDATE database SET produit1 = '$produit1', produit2 = '$produit2', etc.
J'ai donc écrit une petite boucle :
foreach ($_POST as $name=>$value) { echo($name." = '$".$name."', "); }
qui me sort exactement ce que je veux, à savoir produit1 = '$produit1', produit2 = '$produit2', etc., mais je suis embêté avec la dernière virgule, et en plus, je ne vois pas trop comment l'intégrer dans ma requête $query... :oops:

Si tout ça parle à quelqu'un, je suis preneur !

Merci d'avance,
Lionel

Mammouth du PHP | 693 Messages

30 mars 2007, 08:49

Regarde ici

ENtre parenthèse, ce n'est pas un problème SQL, mais plutot un problème PHP.

Petit nouveau ! | 4 Messages

30 mars 2007, 15:19

Merci pour le lien.

J'ai réussi à obtenir ce que je voulais :
foreach($_POST as $name=>$value) { $variable .= ($name." = '$".$name."', "); }
$variable = substr($variable,0,-2);