Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/12/2010, 11h14   #1
Membre régulier
 
Inscription : octobre 2010
Messages : 252
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 252
Points : 92
Points : 92
Par défaut Problème de syntaxe dans ma concaténation

Bonjour, je n'arrive pas à traiter mes données correctement, j'ai visiblement un problème de syntaxe dans ma manière de concaténer mes variables:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
$cpt = 0;
while ($cpt++ < $nb_personnes)
{
	echo $prenom_membre.$cpt = htmlspecialchars($_POST['prenom_membre'. $cpt]);
	echo $nom_membre.$cpt = htmlspecialchars($_POST['nom_membre'. $cpt]);
	echo $mail_membre.$cpt = htmlspecialchars($_POST['mail_membre'. $cpt]);
	echo $instrument_membre.$cpt = htmlspecialchars($_POST['instrument_membre'. $cpt]);
}
// INSERTION DES MEMBRES
$bdd->exec("INSERT INTO membres(groupe, prenom, nom, mail, instrument, responsable) VALUES('$groupe', '$prenom_membre0', '$nom_membre0', '$mail_membre0', '$instrument_membre0', 1)");
$cpt = 1;
while ($cpt++ < $nb_personnes)
	$bdd->exec("INSERT INTO membres(groupe, prenom, nom, mail, instrument, responsable) VALUES('$groupe', '$prenom_membre".$cpt."', '$nom_membre".$cpt."', '$mail_membre".$cpt."', '$instrument_membre".$cpt."', 0)");
J'ai testé plusieurs solutions mais rien de concluant j'ai toujours plusieurs centaines de lignes telles que:
Undefined variable: prenom_membre

Une explication me ferrait beaucoup avancer !

Merci.
student_php est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 11h35   #2
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 656
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 656
Points : 5 359
Points : 5 359
Ce que tu essayes de faire ce sont des variables dynamiques Comment appeler une variable dont le nom est stocké dans une autre variable?
Ce qui donnerait quelque chose comme :
Code :
${'prenom_membre'.$cpt} = htmlspecialchars($_POST['prenom_membre'. $cpt]);
Mais bon, là ce serait sans doute plus simple de tout mettre dans un tableau plutot que de multiplier les variables :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$membres = array();
$cpt=0;
while ($cpt++ < $nb_personnes)
{
	echo $membres[$cpt]['prenom'] = htmlspecialchars($_POST['prenom_membre'. $cpt]);
	echo $membres[$cpt]['nom'] = htmlspecialchars($_POST['nom_membre'. $cpt]);
	echo $membres[$cpt]['mail'] = htmlspecialchars($_POST['mail_membre'. $cpt]);
	echo $membres[$cpt]['instrument'] = htmlspecialchars($_POST['instrument_membre'. $cpt]);
}
// INSERTION DES MEMBRES
$bdd->exec("INSERT INTO membres(groupe, prenom, nom, mail, instrument, responsable) VALUES('$groupe', '$prenom_membre0', '$nom_membre0', '$mail_membre0', '$instrument_membre0', 1)");
$cpt = 1;
while ($cpt++ < $nb_personnes)
	$bdd->exec("INSERT INTO membres(groupe, prenom, nom, mail, instrument, responsable) VALUES('$groupe', '".$membre[$cpt]['prenom']."', '".$membre[$cpt]['nom']."', '".$membre[$cpt]['mail']."', '".$membre[$cpt]['instrument']."', 0)");
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 11h36   #3
Nouveau Membre du Club
 
Inscription : avril 2008
Messages : 34
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 34
Points : 29
Points : 29
Je suis pas sûr mais je pense que :
'prenom_membre'.$cpt ==> 'prenom_membre0', 'prenom_membre1', etc
mais
$prenom_membre.$cpt ==>/ (ne donne pas) $prenom_membre0,$prenom_membre1, etc

Il faut que tu utilises des tableaux avec :
Code :
1
2
$prenom_membre = array();
$prenom_membre[$cpt] = ....;
etc etc
akkai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 11h43   #4
Membre régulier
 
Inscription : octobre 2010
Messages : 252
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 252
Points : 92
Points : 92
Bien sûr des tableaux... Je sais pas pourquoi je n'y ai pas pensé

Merci ! Je test de ça tout de suite !
student_php est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 11h43   #5
Nouveau Membre du Club
 
Inscription : avril 2008
Messages : 34
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 34
Points : 29
Points : 29
Griller par célira pour une réponse équivalente lol^^
akkai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2010, 12h03   #6
Membre régulier
 
Inscription : octobre 2010
Messages : 252
Détails du profil
Informations forums :
Inscription : octobre 2010
Messages : 252
Points : 92
Points : 92
Juste un problème, sur mes lignes sql:

Code :
$bdd->exec("INSERT INTO membres(groupe, prenom, nom, mail, instrument, responsable) VALUES('$groupe', '".$membres[$cpt]['prenom']."', '".$membres[$cpt]['nom']."', '".$membres[$cpt]['mail']."', '".$membres[$cpt]['instrument']."', 1)");
J'ai des:
Undefined index: nom
Undefined index: prenom
etc...

à chaque tour de boucle, pour tant mes echo print bien ce qu'il faut dans les affectations

EDIT: Problème résolut ! Oublie d'un 's' à membres...

Merci encore !
student_php est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h16.


 
 
 
 
Partenaires

Hébergement Web