Extraction des valeur d'un champ select et concatenation pour envoie Mysql [Résolu]

Signaler
Messages postés
19
Date d'inscription
dimanche 9 mai 2004
Statut
Membre
Dernière intervention
23 décembre 2005
-
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
-
Bonjour, je vous explique mon problème :
J'ai une première page dans laquelle j'ai un champ de selection multiple qui va chercher son contenu dans une table.
Dans ma seconde page j'aimerais récupérer les différentes valeurs choisies (valeurs entières) et les concaténer pour ensuite les envoyer ds Mysql:
De la forme : Page 1 je selectionne les valeurs 1, 3, 4, et 26, je les recupère dans ma page 2 et j'insère un caractère pour les dinstinguer :
1/3/4/26/.... puis je voudrais insérer cette chaîne dans une variable pour les stocker ds mysql:
$variable = 1/3/4/26

mon script de la page de recup est le suivant :

$IdProfil=isset($_POST["IdProfil"])?$_POST["IdProfil"]:"";

for ($i=0; $i<count($IdProfil); $i++)
{
$IdProfil2= "/".$IdProfil[$i];
}
echo $IdProfil2;
exit;

Mais lorsque j'affiche cette variable : Profil2 je n'ai que la dernière valeur choisie dans mon formulaire. Alors que je souhaite avoir "1/3/4/... " .

Merci de vos réponses, je pense que c'est une histoire de tableau mais j'ai un peu du mal.

3 réponses

Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
Normal.

Quand tu fais ta boucle, tu gardes toujours la même variable $IdProfil2.

Hors, pour ajouter une valeur à une variable en plus de sa valeur initiale, tu dois écrire ta ligne autrement :



$IdProfil=isset($_POST["IdProfil"])?$_POST["IdProfil"]:"";

$IdProfil2 = '';



for ($i=0; $i<count($IdProfil); $i++)

{

$IdProfil2 .= '/'.$IdProfil[$i];

}

echo $IdProfil2;



Et la ca marche :)
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
Facile :)

La fonction explode() et la pour t'aider !



<?php

$var = '1/2/3/4/5';

$val = explode('/',$var);

echo $var[0]; // ==> affichera : '1'

echo $var[1]; // ==> affichera : '2';



?>

etc... ;)
Messages postés
19
Date d'inscription
dimanche 9 mai 2004
Statut
Membre
Dernière intervention
23 décembre 2005

MERCI BEAUCOUP !!!!!

Maintenant reste à l'insérer dans ma table (simple) mais le 2nd problème est que chacune des variables que j'ai inséré dans ma première table correspond à une valeur texte dans une autre. (ces variables sont des indexs en fait).
Et donc je dois pour chaque suite de caractère de la forme 1/2/3/... les sortir sous la forme depuis la table 1 :
1
2
n

Pour ensuite faire une recherche dans la table 2 pour sortir sous la forme

Texte 1 ( correpondant à la valeur 1)
Texte 2 ( correpondant à la valeur 2)
Texte n ( correpondant à la valeur n)

Je ne sais pas si c'est possible à réaliser sinon j'abandonne cette solution que j'avais employé pour eviter de surcharger la première base.
Si tu as une idée , je creuse dessus mais ce n'est pas évident.

Merci encore pour ta réponse