Deuxieme probleme foreach

Résolu
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007 - 22 août 2006 à 03:07
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007 - 22 août 2006 à 13:56
Bonsoir tous le monde, je me permet de reposter un message sur le foreach car j'ai une seconde question a vous posez au sujet de ce dernier....

$status = $_POST["status"];

foreach($status as $key => $value){

// ma requete php ( insert into) qui va enregistré des enregistrement par rapport a tous les
//valeurs existants
}

ici je remarque que j'ai effectivement pris la variable status, pour généré toutes les valeurs existante  de ce dernier ce trouvant dans ma page et faire des enregistrement avec une seul requete php ... mais un probleme me tracass. comment fait ont si j'ai une deuxieme valeur que je voudrai enoncé... ( Appelé "name"; )

$status = $_POST["status"];
$name = $_POST["name"];
foreach($status as $key => $value){
}

--------------> j'ai essayé de faire ceci :
$status = $_POST["status"];
$name = $_POST["name"];
foreach($status as $key => $value){
   foreach($nol as $key => $value2){

// requete insert into

}}

---------
le probleme dans ce cas de figure c'est quil va m'enregistrer effectivement mes deux valeurs sauf que il va en enregistré  toutes les possibilité possible entre les deux valeurs c'est a dire  :

imaginons que jai dans mon tableau status :  a1  et a2
dans mon tableau name :  bébé,  adulte

il va mafficher lors de lenregistrement de ma requete insert into :  a1, bébé   a1, adulte  , a2, bébé   a2 adulte.

Pourtant al est avec bébé et a2 avec adulte...
a1 ne peut pas etre avec adulte et a2 ne peut etre avec bébé

---------------------------

et je cherche a différencier cela...
et franchement je galere un bon moment avec les foreach je commence en avoir vraiment assez... de pas y arriver... quelquun peut il m'aider... avec un exemple de code ?
merci encore pour tous !!!
 vous etes les meilleurs ;) , ----
|, ----
|

5 réponses

davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
22 août 2006 à 08:57
Salut :)
Si j'ai bien compris ton probleme, voici une solution:
for ($compt=0;$compt<sizeof($status);$compt++)
{
    insert ...blablabla....valeur1="'.$status[compt].'", valeur2="'.$name[$compt].'";
}

ou, autre facçon, si tu veux ré-utiliser ton code:
$status = $_POST["status"];
$name = $_POST["name"];
foreach($status as $key => $value){

    insert ...blablabla....valeur1="'.$value.'", valeur2="'.$name[$key].'";
}

Ceci fonctionnera uniquement si tes 2 tableaux ont la meme tailles (a verifier avant toute choses ;))

-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
22 août 2006 à 11:17
Hello,

oui. Sauf qu'on n'utilise pas sizeof () dans une boucle. Il faut le sortir de la boucle, et affecter son résultat à une variable, qu'elle on va utiliser dans la boucle.
3
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007
22 août 2006 à 12:33
Merci pour vos reponses : mais jai une question tu me dis :
Ceci fonctionnera uniquement si tes 2 tableaux ont la meme tailles (a verifier avant toute choses ;))

Pour la deuxieme fonction.. quest ce que tu entends par "tailles" ?
3
davwart Messages postés 855 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 28 juillet 2009 1
22 août 2006 à 13:08
ouf ! oui ! bonne remarque de malalam (honte sur moi ;)

Par taille, je veux dire que ils ont le meme nombres d'elements, càd :
sizeof(tableau1)=sizeof(tableau2)

-------------------------------------

Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007
22 août 2006 à 13:56
Apres acharnement j'ai fais comme suite :
ca marche tres bien :

*******************************
foreach ($_POST as $key => $value)
{
 if (preg_match("`status(.+)`i",$key,$patterns))
 {
  $requete_add = "INSERT INTO detection(status, id_jeux, id_cheat, id_anticheat)
                  VALUES ('".$_POST["status".$patterns[1]]."', '$id_jeux', '$id_cheat', '".$_POST["id_anticheat".$patterns[1]]."')";
$result_add = mysql_query($requete_add);

***********************
Merci kevin... pour son aide, Malalam, Davwar, ( et puis soyons fou ;) merci a moi milkasoprano )
3
Rejoignez-nous