Boucles et insertions dans champs différents

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Boucles et insertions dans champs différents

Boucles et insertions dans champs différents

par John Steed » 19 mars 2011, 15:21

Bonjour à tous.

C'est mon premier message sur ce forum, aussi j'espère respecter toutes les chartes et convenances en usage ici. Si ce n'est pas le cas, je vous promets de ne jamais faire deux fois la même erreur ;)
Bref je vous explique ma situation et mon problème :
Je travaille depuis quelques mois en vue d'apprendre par moi-même à créer un site internet. Je m'entraine pour cela sur un site de cuisine que je crée de 0. Les parties sur HTML, CSS et Javascript se sont bien passées. Mais pour PHP, je tourne en rond sans progrès manifeste...En gros, comme pour une langue étrangère, je comprends un code écrit et la démarche "grammaticale" mais quand je le parle, je fais des fautes bêtes. Et si un étranger fera l'effort de comprendre malgré les fautes, PHP ce méchant, non ^^
Sur mon site de cuisine, il y a un formulaire pour proposer des recettes. Il est très vaste et ce que j'essaie de faire, c'est traiter les champs intelligemment. J'avais commencé par faire une version fonctionnelle de traitement champ par champ, mais on m'a signifié que c'était une usine à gaz incompréhensible. Mais ça marchait...On m'a donc suggéré d'entrer la plupart des champs dans un array en les nommant par exemple ingredient[]. Ca marche. Le problème, c'est le traitement des tableaux que je produis (principalement quantite[](chiffres), unite[](liste déroulante), ingredient[](texte), etape[](texte)) pour leur insertion dans une table. La table en question (entièrement transformable si vous me dites que c'est le plus simple) a donc des champs quantite0, unite0, ingredient0, etape0, puis quantite1, unite1, etc.
Je cherche à faire des boucles pour insérer chaque valeur du array créé par le formulaire dans chaque champ correspondant : le quantite0 du formulaire dans le quantite0 de la table, puis le 1 dans le 1, etc.
Les principales difficultés sont :
- comment sécuriser les entrées de l'utilisateur quand celles-ci sont dans un tableau ? Faut-il extraire les données avec un foreach, puis les traiter avec des htmlspecialchar et autres, puis les remettre dans un tableau ?
- est-il possible de ne faire qu'une seule boucle pour l'ensemble des champs en tableau du formulaire sachant qu'il peut y avoir 15 ingrédients et que deux étapes ? Ou vaut-il mieux faire une boucle par tableau ?
- enfin comment formuler exactement la requête sql pour qu'elle mette la bonne valeur du tableau dans le champ de la table correspondant ?
for ($i = 0, $c = count($recette_ingredient); $i < $c; $i++) {
			   
				$insertionIngredient[$i] = "INSERT INTO recettes_enattente (recette_ingredient$i) VALUES ('".$recette_ingredient[$i]."')";
				$inser_exec_ingredient[$i] = mysql_query($insertionIngredient[$i]) or die(mysql_error());
			
			}
Merci pour votre aide.