Concaténation de variable

Eléphanteau du PHP | 10 Messages

29 mai 2005, 12:51

Bonjour,

J'ai un petit souci de concaténation de variable.

Avec un formulaire, je peux entrer jusqu'à 10 dates.
Mes champs s'appellent Date1, Date2 etc...
J'ai une variable NbDep qui me permet de gérer le nombre de dates rentrées.
Pour l'ajout des dates dans ma base, je passe par une boucle For qui tourne autant de fois qu'il y a de dates rentrées.
J'ai donc une seule requete et mon souci est que j'arrrive pas à faire avec du texte et ma variable $i (variable qui s'incrémente pour ma boucle for) l'équivalent de $Date1, $Date2. Comment puis-je faire ?

J'espèere avoir été suffisament claire
Merci de votre aide.

Mammouth du PHP | 19672 Messages

29 mai 2005, 12:55

for($i = 1; $i < $limite; $i++)
{
    $Date_formattee = $Date.$i;
    // reste du code de la boucle
}
Mais au lieu de mettre $Date, tu utiliseras $Date_formattee.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 10 Messages

29 mai 2005, 13:00

$Date_formattee = $Date.$i;
C'est ce que j'ai fait en 1er. Mais je n'ai pas de variable $Date.
En fait je dois écrire en texte l'équivalent de "$Date" tout ça concaténé avec ma variable $i

Mammouth du PHP | 19672 Messages

29 mai 2005, 13:14

Alors tu concatènes:
$variable = "chaine de caractère". $i;
Et tu obtiendras la concaténation recherchée.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 10 Messages

29 mai 2005, 14:04

Merci ça marche... mais un autre souci est apparu... :(
Comment faire pour mettre la valeur de mon champ (variable $Date1) dans ma nouvelle variable.

Car avec
$variable = "chaine de caractère". $i; 
ma variablle 'variable' a 'chaine de caractère1' comme valeur et moi je souhaiterai récupérer la valeur de ma variable Date1

Suis-je claire ?

Mammouth du PHP | 19672 Messages

29 mai 2005, 14:07

Suis-je claire ?
Pas trop, tu m'as dit que ce n'était pas une variable et finalement c'en serait une quand même: je t'ai mis les deux cas de figure pour concaténer, chaine + varaible ou varaible+variable... du coup je comprends pas trop
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 10 Messages

29 mai 2005, 14:16

Je vais essayer d'etre plus claire.

J'ai une page où je peux rentrer jusqu'à 10 dates de séjour de vacances.
mes champs s'appelent Date1, Date2, Date3, etc etc.

lors de l'ajout des dates dans ma base, j'utilise cette requete :
INSERT INTO departs (Sejour,Code,Cat,Date) values ('$Sejour','$Code','$Cat','$Date1')"
Cette requete je dois utiliser autant de fois que j'ai de dates rentrées dans mon formulaire.
Si j'ai 3 dates, la requete doit se faire 3 fois, 7 dates, 7 fois la requete.
Donc pour cela j'utilise une boucle for qui ressemble à ça :
for ($i = 1; $i <= $NbDep; $i++)
$NbDep étant mon nombre de dates rentrées.

donc ma requete doit intégrer i pour prendre en compte tour à tour Date1, puis Date2, puis Date3 etc etc

Donc ma requete doit etre du style (et c'est ça qui me pose pb)
INSERT INTO departs (Sejour,Code,Cat,Date) values ('$Sejour','$Code','$Cat','$Date[b]i[/b]')"
avec i =1, i=2 etc etc

Est-ce plus claire ?

Mammouth du PHP | 983 Messages

29 mai 2005, 14:32

Je te conseille de nommer tes input ainsi:

Code : Tout sélectionner

<input type="text" name=date[] />
Ainsi, tu pourras récupérer les saisis et boucler dessus:
<?php
//construction de la requete
$requete= 'INSERT INTO departs (Sejour,Code,Cat,Date) values ';

foreach($date as $dateSaisie)
   $requete.="('$Sejour','$Code','$Cat','$dateSaisie'),";

//suppression de la dernière virgule
$requete = substr($requete,0,-1);

?> 

Eléphanteau du PHP | 10 Messages

29 mai 2005, 15:04

Je ne comprends pas trop ceci :

Code : Tout sélectionner

<input type="text" name=date[] />
les 10 champs pour les dates seront nommés date[] ???

Mammouth du PHP | 983 Messages

29 mai 2005, 15:06

Oui exactement. En fait, tes dates seront contenues dans un tableau directement. Ainsi, pas besoin de vérifier quelles dates ont été saisies dans la récupération des variables ;)

Mammouth du PHP | 19672 Messages

29 mai 2005, 15:06

non, ça veut dire que $_POST['date'] sera un tableau indexé:
tu récupères :
$date - $_POST['date'];
Ensuite, tu récupères chaque date dans $date[0], $date[1] etc...
Pour savoir combien tu en as, tu fais
count($date);
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: