8796 sujets

Développement web côté serveur, CMS

Bonjour,

Je me permets de poster sur ce forum bien qu'il ne soit pas destiné aux débutants comme moi parce que je l'ai posée sur des forums pour débutants et je n'ai aucune réponse et du coup je ne sais même pas si c'est parce que ma question est particulièrement stupide ou trop ardue pour qu'un forumeur bénévole prenne de son temps pour y répondre.

J'ai un grand formulaire à traiter, les champs uniques ont des noms "normaux" comme "recette_nom" et d'autres qui envoient leur résultat sous forme d'array comme "recette_ingredient[]". Si le traitement des champs normaux ne pose aucun problème, je butte sur celui des arrays, au nombre de 6 (quantite, unite, ingredient, etape, ustensile et accompagnement). L'idée est de faire rentrer chaque ligne de chaque tableau reçu dans le champ correspondant créé dans la table "recettes" : l'ingredient0 du formulaire dans le champ ingredient0 de la table, le 1 dans le 1, etc., pour chaque array. De base, j'ai prévu une quinzaine de champs par array dans ma table. Ces arrays n'ont pas forcément le même nombre de lignes (il peut y avoir par ex. 3 ingrédients et une seule étape de préparation, comme aucun accompagnement.), et bien sûr, je n'ai aucune idée du nombre d'éléments que va proposer l'utilisateur.
Donc je cherche à écrire une boucle permettant de prendre chaque valeur du tableau reçu via le formulaire, de la sécuriser puis de l'insérer dans le bon champ de la table. Le principal problème, c'est la manière d'écrire "dans le champ de la table qui porte exactement le même nom que l'élément du tableau que tu es en train de traiter".

Quelque chose comme :

for ($i = 0, $c = count($recette_accompagnement); $i < $c; $i++) {
			   
	$insertionAccompagnement[$i] = "INSERT INTO recettes_enattente (recette_accompagnement$i) VALUES ('".$recette_accompagnement[$i]."')";
	$inser_exec_accompagnement[$i] = mysql_query($insertionAccompagnement[$i]) or die(mysql_error());
			
			}

Mais qui marcherait Smiley lol
Par ailleurs, y a-t-il moyen de traiter les 6 arrays reçus dans une même boucle et une seule requête ? Ou vaut-il mieux les traiter les uns à la suite des autres ?
Voilà.
Si quelqu'un voulait bien jeter un oeil à mon problème et me donner son avis, j'apprécierais énormément. Merci.
Modifié par Mendoza (21 Mar 2011 - 11:28)
Salut

Déjà, for, pourquoi pas mais perso je coderais plutôt avec foreach. Le code du formulaire serait plus à même de nous éclairer ainsi que le shéma de/des tables ou mieux le code qui traite le formulaire. Tu devrais avoir pour ce que je devine au moins deux tables et même trois tables.

a écrit :
y a-t-il moyen de traiter les 6 arrays reçus dans une même boucle


oui du type :


$tab = array(1=>array(),
	2=>array(),
	3=>array(),
	4=>array(),
	5=>array(),
	6=>array(),
	7=>array());