IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème de syntaxe dans ma concaténation


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Points : 149
    Points
    149
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    ${'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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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)");

  3. #3
    Membre du Club
    Profil pro
    Coach Agile
    Inscrit en
    Avril 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Coach Agile

    Informations forums :
    Inscription : Avril 2008
    Messages : 43
    Points : 56
    Points
    56
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $prenom_membre = array();
    $prenom_membre[$cpt] = ....;
    etc etc

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Points : 149
    Points
    149
    Par défaut
    Bien sûr des tableaux... Je sais pas pourquoi je n'y ai pas pensé

    Merci ! Je test de ça tout de suite !

  5. #5
    Membre du Club
    Profil pro
    Coach Agile
    Inscrit en
    Avril 2008
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Coach Agile

    Informations forums :
    Inscription : Avril 2008
    Messages : 43
    Points : 56
    Points
    56
    Par défaut
    Griller par célira pour une réponse équivalente lol^^

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Points : 149
    Points
    149
    Par défaut
    Juste un problème, sur mes lignes sql:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $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 !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POO] Probléme de syntaxe dans une classe
    Par jewelz dans le forum Langage
    Réponses: 3
    Dernier message: 03/11/2007, 04h57
  2. [requête]problème de syntaxe dans une insertion
    Par josua dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 16/05/2007, 09h50
  3. [Système] Problème de syntaxe dans condition
    Par pierrot10 dans le forum Langage
    Réponses: 10
    Dernier message: 09/10/2006, 15h10
  4. problème de syntaxe dans des boucles imbriquées
    Par deglingo37 dans le forum Access
    Réponses: 2
    Dernier message: 01/09/2006, 15h46
  5. [MySQL] Problème de syntaxe dans suppression doublons
    Par fred23195 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 13/04/2006, 16h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo