Extraction des valeur d'un champ select et concatenation pour envoie Mysql

Résolu
mulbek Messages postés 19 Date d'inscription dimanche 9 mai 2004 Statut Membre Dernière intervention 23 décembre 2005 - 17 oct. 2005 à 10:42
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 - 17 oct. 2005 à 13:51
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

FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
17 oct. 2005 à 10:54
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 :)
3
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
17 oct. 2005 à 13:51
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... ;)
3
mulbek Messages postés 19 Date d'inscription dimanche 9 mai 2004 Statut Membre Dernière intervention 23 décembre 2005
17 oct. 2005 à 11:17
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
0
Rejoignez-nous