Question sur la concaténation de variables - PHP - Programmation
Marsh Posté le 07-12-2008 à 01:26:13
bcp plus simple comme ça
ton formulaire
Code :
|
ton script de récupération (ajouter des vérifications sur les données)
Code :
|
Marsh Posté le 07-12-2008 à 01:35:40
En effet ça parait beaucoup plus simple, je soupçonnais une manière bien plus "propre" de faire cela, et en effet ton script fait exactement ce que je souhaitais
Je vais étudier son fonctionnement (je suis pas super à l'aise avec les for) pour mieux comprendre le truc.
Merci beaucoup en tout cas !!
Marsh Posté le 07-12-2008 à 02:01:13
Alors si je comprends bien
Tu créés une boucle à l'aide de la variable $i. Tant que $i est inférieur au nombre de fois ou le champs pays a été renseigné, tu rentres la valeur du tableau pays correspondant dans le tableau output, puis après tu demandes une concaténation du tableau output ?
Marsh Posté le 07-12-2008 à 11:22:25
bricocoman a écrit :
|
Ce bout de code est super moche. Foreach.
Marsh Posté le 07-12-2008 à 13:45:26
Code :
|
c'est quand même bien plus pratique
Marsh Posté le 07-12-2008 à 19:13:40
Je comprends bien ce code mais cela me renvoie une erreur en voulant formater les données :
Code :
|
Warning: implode() [function.implode]: Invalid arguments passed in C:\Programmes\Wamp\www\test\bd\test1.php on line 13 (la ligne de l'implode)
Si je fais un echo "$pays", ça me renvoie mes données enregistrées mais toutes à la suite sans espace, ce qui les rend inexploitables par la suite.
Marsh Posté le 07-12-2008 à 19:26:36
Déja je comprends pas pourquoi ceci me renvoi des erreurs : Warning: implode() [function.implode]: Invalid arguments passed in C:\Programmes\Wamp\www\test\bd\test1.php on line 9
Code :
|
Marsh Posté le 07-12-2008 à 20:13:12
parce-que tu réfléchis pas à ce que tu fais et que tu copies/colles du code au pif?
Marsh Posté le 07-12-2008 à 20:17:47
J'y réfléchis, je me documente, je lis et j'essaye de comprendre, et ça fait quelques heures que j'essaye de résoudre ça, mais quand on débute tout n'est pas évident, et on tatonne forcément.
Marsh Posté le 07-12-2008 à 22:28:01
regarde dans la doc ce que font foreach et implode, et tu comprendras bien que ça n'a pas de sens de les utiliser comme ça...
Marsh Posté le 07-12-2008 à 23:52:38
Bon ok je pense avoir compris, j'ai réussi ce que je voulais en faisant ça :
Code :
|
Le seul "hic", c'est que ça me met forcément la virgule à la dernière entrée, genre : entrée1,entrée2,
Mais je pense pas que ce soit trop grave
Marsh Posté le 07-12-2008 à 23:57:02
http://fr.php.net/manual/fr/function.implode.php
T'as pas dû lire l'exemple 1 c'est pas possible...
$_POST['pays'] c'est ton tableau, y a strictement rien à faire.
Marsh Posté le 08-12-2008 à 00:01:48
j'ai testé en me basant sur ce modèle, ça me créé une chaine type "entrée1,entrée1,,,,, (autant de virgules que de champs de formulaires restant si on a mis une virgule en paramètre d'implode), il ne distingue pas si une donnée a été rentrée ou non dans le formulaire.
Marsh Posté le 08-12-2008 à 00:20:17
Soit tu fais un truc comme bricocoman (mais avec un foreach c'est plus joli), soit tu vires tous les éléments null de ton tableau avant avec un truc comme ça :
Code :
|
Marsh Posté le 08-12-2008 à 00:28:53
En effet, cela marche bien comme cela aussi avec l'implode par la suite.
Pourquoi tu dis que foreach est plus joli ? En terme de performances, mieux vaut un foreach qu'une boucle avec un count ?
En tout cas merci
Marsh Posté le 08-12-2008 à 07:34:12
sielfried a écrit : Soit tu fais un truc comme bricocoman (mais avec un foreach c'est plus joli), soit tu vires tous les éléments null de ton tableau avant avec un truc comme ça :
|
J'avais même pas tout lu...
De toute manière si un champ n'est pas renseigné il n'est pas POSTé non?
Dans ce cas il suffit de vérifier l'existence de la variable et de faire un implode...
Marsh Posté le 07-12-2008 à 00:42:48
Bonjour à tous, en tant que novice je viens solliciter vos lumières, pour un truc tout con mais que je n'arrive pas à régler.
J'ai un formulaire, qui pour certains éléments, contient plusieurs réponses possibles (genre pour un membre, au champ "pays visité" il peut écrire dans un champ 'France', dans l'autre "Angleterre" etc...
Je souhaite mettre ces données ensuite dans ma bd MySQL, de manière propre. J'ai mis plusieurs champs dispo pour ça, il faut donc que mon script détecte si le champ a été rempli, ajoute chaque valeur retournée dans une seule variable et l'injecte dans la bd. Voici ce que j'ai fait pour le moment :
Code de la page :
puis code du script :
Ma problématique est à ce moment là de rassembler en une seule variable les données rapportées par tous les $pays pour ensuite l'injecter en bd. J'ai bien pensé à faire quelque chose en concaténation type $pays_total = "$pays1.', '.$pays2" etc... mais ça va me foutre systématiquement des espaces alors que je n'en veux qu'entre 2 variables qui existent. Quelqu'un aurait il une solution à me proposer ?