foreach

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

par Berzemus » 05 juin 2008, 11:34

Ben si, le but, c'est que tu trouves toi :wink:

Mais bon, pour faire avancer le schmilblick, fait un "echo" de chaque requête.
$comt=$_POST['zonedetexte'];
 foreach ($_POST['idcmt'] as $cl) {
  $updateSQL = "UPDATE mytable SET cmt='$comt' WHERE id='$cl'";
  echo $updateSQL."<br> \n";         
  $Result = mysql_query($updateSQL, $Connect) or die(mysql_error());
} 
Tu verras, en effet, que cmt prends toujours la même valeur.


Dans ton cas, un "for" serait mieux.
$un   = array(1,2,3,4);
$deux   = array("a","b","c","d");

assert('count($un) == count($deux);');

for ($a=0,$k=count($un);$a<=$k;$a++)
  {
  printf("pour un j'ai %d et pour deux j'ai $s",$un[$a],$deux[$a]);
  }

foreach

par kosti » 05 juin 2008, 11:23

ben alors Sékiltoyai j'imagine que t pas la seulement pour questionner :)

foreach

par kosti » 04 juin 2008, 20:12

ben vu que c'est une boucle foreach je me suis di qu'a chaque passage pour chaque id on prend le contenu de la zone de texte qui a tjrs le meme nom vu que c'est un while mais pas forcement le meme contenu (en gros une boucle qui parcours une boucle) apparement non.. comment alors diferencier .. Merci pour vos réponses

par Sékiltoyai » 04 juin 2008, 19:26

Pour chaque id, tu fournis à la requète la même variable contenant les mêmes données, cela t'étonnes que tous les champs soient identiques avec ça ?

foreach

par kosti » 04 juin 2008, 18:31

ben en fait je place un champ caché qui s'associe donc a chaque résultat avec comme valeur l'id
<input name="idcmt[]" type="hidden" id="idcmt[]" value="<?php echo $row['idph'];?>" />

Et ainsi je recupere l'id de chacun pour ma boucle foreach.

Non je ne vois pa de probleme Sékiltoyai desolé

par d0m » 04 juin 2008, 17:55

salut à toi,

la première chose c'est de voir ou se trouve ton problème :
tu pourrais déjà nous donner le code html des zones de textes pour qu'on puisse mieux comprendre.

Il semblerait que tes zones de textes se nomment idcmt[].
en faisant un affichage du contenu de $_POST['idcmt'], cela correspond à ce que tu penses avoir mit dedans?
print_r($_POST['idcmt']);

par Sékiltoyai » 04 juin 2008, 17:53

Tu ne vois pas un problème ?
$comt=$_POST['zonedetexte'];
...
$updateSQL = "UPDATE mytable SET cmt='$comt' WHERE id='$cl'";
...

foreach

par kosti » 04 juin 2008, 17:00

Salut a tous, je vous explique mon problème dans une page j'ai placé une boucle pour afficher des résultats qui sont composés entre autres chacun d'une zone de texte oû l'utilisateur peut entrer un texte et enregistrer, j'utilise une boucle foreach au niveau de la requete update :
$comt=$_POST['zonedetexte'];
 foreach ($_POST['idcmt'] as $cl) {
  $updateSQL = "UPDATE mytable SET cmt='$comt' WHERE id='$cl'";              
  $Result = mysql_query($updateSQL, $Connect) or die(mysql_error());
}
le problème donc c'est que l'update de ma zone de texte est le meme pour tous les resultats alors que j'ai tapé un texte different pour chacun d'eux, peut etre que j'utilise pas la bonne methode en gros comment faire un update de chacun des résultats affichés par une boucle (while) Merci pour votre aide