Deuxieme probleme foreach [Résolu]

Signaler
Messages postés
239
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
1 juillet 2007
-
Messages postés
239
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
1 juillet 2007
-
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

Messages postés
855
Date d'inscription
mardi 19 novembre 2002
Statut
Membre
Dernière intervention
28 juillet 2009
1
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]
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
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.
Messages postés
239
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
1 juillet 2007

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" ?
Messages postés
855
Date d'inscription
mardi 19 novembre 2002
Statut
Membre
Dernière intervention
28 juillet 2009
1
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]
Messages postés
239
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
1 juillet 2007

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 )