Foreach et formulaire petit probleme d'insertion dans SQL

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 : Foreach et formulaire petit probleme d'insertion dans SQL

par d0m » 07 févr. 2008, 17:39

Déjà tu pourrais utiliser les balises code et php pour rendre le post plus lisible. C'était un supplice de te lire.

D'après ce que tu dis, tes champs iddefaut sont liés à tes champs commentaires.

Une fois ton formulaire soumis, tu auras 2 tableaux dans ta variable POST :
$_POST['iddefaut'] et $_POST['commentaires']
Si tes input sont crées en parallèle (dans le même ordre et en même nombre), tu peux les parcourir simultanement en utilisant un des deux dans le foreach et parcourir l'autre avec la cle:
foreach($_POST['commentaire'] as $cle => $com){
  $commentaire = $com;
  $defaut      = $_POST['iddefaut'][$cle];
}
Ca revient en gros à ce code là :
for($i=0;$i<count($_POST['commentaire']);$i++){
  $commentaire = $_POST['commentaire'];
  $defaut      = $_POST['iddefaut'][$cle];
}

par fabien_14 » 07 févr. 2008, 17:19

Pareil que "commentaire" je dois ajouter defaut dans mon formulaire.

<input type="text" name="iddefaut[]" size="27">

C'est pour prendre en compte cela dans la boucle foreach car je n'arrive pas a l'inserer a ma table via la requete SQL.

EDIT :

J'ai essayé ceci mais cela ne marche pas non plus

foreach ($_POST['commentaire']['iddefaut'] as $key => $value) {
$commentaire = $_POST['commentaire'][$key];
$defaut = $_POST['iddefaut'][$key];






Merci de vos réponse :)

par d0m » 07 févr. 2008, 17:12

Tu veux dire quoi par
rajouter le champs "defaut" a la boucle foreach
?

par fabien_14 » 07 févr. 2008, 17:06

Merci sa marche trés bien :)

Cependant j'ai oublié un champs et il me faudrai rajouter le champs "defaut" a la boucle foreach

J'ai essayé cela mais sans résultat :

foreach($_POST['commentaire']['defaut'] as $com)
{

Merci de votre aide.

par Truc » 07 févr. 2008, 13:00

A chaque passage de boucle(construction du formulaire) tu auras des champs input au meme attribut name "commentaire".
Ajoute des [] à cet attribut pour en faire un tableau pour le parcourir par la suite à l'aide de foreach()
foreach($_POST['commentaire'] as $com)

Foreach et formulaire petit probleme d'insertion dans SQL

par fabien_14 » 07 févr. 2008, 12:41

Bonjour,

J'affiche un formulaire qui m'intégre mes champs en fonction d'une requete SQL aprés l'envoi de SUBMIT sa m'insere cela dans ma base de donnée, Evidement le nombre de champs est variable puisqu'il dépent d'une requete SQL

Mon probleme est que cela ne marche pas avec foreach.

voici mon code :

Code : Tout sélectionner

<form method="post" name="post"> <?php $result = mysql_query("SELECT * FROM defaut WHERE idligne = $_GET[ligne]"); while ($c=@mysql_fetch_array($result)) { echo "$c[nom] : <input type=\"text\" name=\"commentaire\" size=\"27\" ><input type=\"equipe\" name=\"equipe\" size=\"27\" ><br>"; } ?> <input type="submit" class="bouton" value=" Envoyer " name="submit"> </form>


Code : Tout sélectionner

if ($_POST['submit'] == TRUE) { foreach(??????????) { $date = date('Y/m/d H:i:s'); $sql = mysql_query(" INSERT INTO rec SET equipe = '$equipe',commentaire = '$commentaire',date = '$date' ") or die( mysql_error()); } }

Voila si qlq peux me donner un coup de main sur le foreach.

Je vous remercie :)