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

PHP & Base de données Discussion :

Plusieurs valeurs pour une variable à injecter


Sujet :

PHP & Base de données

  1. #1
    Membre du Club Avatar de pony99
    Femme Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 69
    Points
    69
    Par défaut Plusieurs valeurs pour une variable à injecter
    Bonjour,

    Voila je suis devant un petit problème.
    J'ai une variable ($V) qui peux prendre différentes valeur depuis un champs de saisie.
    le nombre des valeur ne sont pas connu
    $V = V1, V2, V3 ou $V = V1, V2, V3, ....Vn

    Q1 : Comment puis-je faire pour enregistrer ces valeurs dans une base de donné MySql?
    Q2 : comment les récupérés?

    Merci de votre aide

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Points : 48
    Points
    48
    Par défaut
    bonjour,

    Q1 :
    $V = Array();
    //ajout d'une valeur en fin de liste
    $V[] = "valeur";


    ensuite si tu veux savoir le nombre exact de valeur tu fais un "count($V)"
    et ton traitement vers la bdd MySQL ensuite.

    Q2:
    pour les récupérer tu créé un tableau dynamique vierge, tu te connecte a la bdd, tu récupère un par un les éléments, et tu les ajoutes de la même façon que précédemment .

    du moins , essaye de cette manière, je pense qu'il ne devrais pas trop y avoir d'erreur

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 99
    Points : 78
    Points
    78
    Par défaut
    voilà tu es obligé de passer par un tableau et d'en extraire chaque ligne pour les insérer dans ta base

  4. #4
    Membre du Club Avatar de pony99
    Femme Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 69
    Points
    69
    Par défaut
    J'ai pas très bien compris.

    Je vous donne un exemple concret.

    Dans un formulaire, les utilisateurs doivent entrer des valeur différente (disons les couleur de le chemise hawaïenne )

    dans le champs couleur : peu prendre 2, 3 4 ou 5 couleur voir plus.

    Comment je récupère les donnés après la validation du formulaire?
    En chaîne de caractère ?

    Et les tableau dans MySql c'est pas mon fort

  5. #5
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    JE suppose que les internautes saissent leur "couleur de chemise hawaïenne" grâce à des cases à cocher.

    SI c'est le cas il faut récupérer les valeurs saisies puis pour chacune d'entre elle faire un ajout dans la base de données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach($_POST['couleurs'] as $couleur){
        // vérification etc...
        mysql_query('INSERT INTO couleurs_chemises VALUES("'.$user_id.'","'.$couleur.'");');
    }
    Et les tableau dans MySql c'est pas mon fort
    MySQL renvoie des jeux de résultat, pas des tableaux, les tableaux sont manipulés avec un langage serveur comme l'est PHP.

  6. #6
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Et si toutes les couleurs doivent être stockées dans un seul champ, tu les concatènes dans une chaîne en ajoutant un séparateur, # par exemple.

    Lorsque tu les récupéreras, il faudra exploser la chaîne suivant ce séparateur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $myColors = split('#', $myString);

  7. #7
    Membre du Club Avatar de pony99
    Femme Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 69
    Points
    69
    Par défaut
    Le choix des couleur se fait via une liste déroulant + javascripte.
    L'utilisateur choisie la couleur et clique sur le bouton [+]
    La couleur s'ajoute dans le Champs "Couleur", et les différente couleur sont séparées par un "-".

    donc $_POST['couleur'] = "C1-C2-C3-C4...";

    J'ai pensé a la solution jml94, mais dans ce cas je me retrouverais sans valeur couleur dans ma base, mais une chaîne de couleur exp. C1-C2-C3-C4..etc..
    J'ai peur que cette solution me complique les choses plutard

    Est-ce qu'il faut que j'explose $_POST['couleur'] en $myColors[0], $myColors[1]; $myColors[2] etc..

    et comment mettre des valeur dans la base MySql, la solution
    enum ("Jaune", "Bleur", "Rouge" etc..) me semble pas la bonne, car je ne sais pas combien de couleur mettra l'utilisateur.

    Je sais je suis un peu chiant, mais je connais le PHP que depuis 1 an.

    Merci

  8. #8
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonsoir,

    Oui si vous avez une chaine de caractères contenant plusieurs occurences séparées par un caractère il suffit d'en créer un tableau grâce à la fonction explode, ensuite le principe reste inchangé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $colors = explode('-', $_POST['couleurs']);
    foreach($colors as $color){
         mysql_query('INSERT INTO couleurs_chemises VALUES("'.$user_id.'","'.$couleur.'");');
    }

  9. #9
    Membre du Club Avatar de pony99
    Femme Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 69
    Points
    69
    Par défaut
    Ok, je vais faire ça,

    Mais comment je récupère les variable de la base? avec foreach($colors as $coleur)?

  10. #10
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Mais comment je récupère les variable de la base
    ???
    Les variables ne sont pas récupérés de la base mais de ton menu déroulant.

  11. #11
    Membre du Club Avatar de pony99
    Femme Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 69
    Points
    69
    Par défaut
    Excuse moi, je me suis mal exprimer.
    Je voulais dire comment je récupère les valeurs de la variable $couleur?

    Par exemple si je recherche les chemise de Mr Dupont

    SELECT login chemise, couleur FROM vetement WHERE login=''dupont'
    While ( etc... etc ...

    Les chemise de monsieur <? echo $login." sont de couleur : ".$?????
    Je sais pas si je suis claire

  12. #12
    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
    Euh... dans un tableau ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $sql = "SELECT login chemise, couleur FROM vetement WHERE login='dupont'";
    $results = mysql_query($sql) or die (mysql_error());
    while ($ligne = mysql_fetch_array($results))
    {
     $couleurs[] = $ligne['couleur'];
    }
    print_r($couleurs);

Discussions similaires

  1. plusieurs valeurs pour une même énumération
    Par adaneels dans le forum C#
    Réponses: 6
    Dernier message: 10/04/2009, 17h41
  2. [Débutant] Plusieurs fonctions pour une variable
    Par cpt.blake dans le forum MATLAB
    Réponses: 5
    Dernier message: 28/04/2008, 12h07
  3. Plusieurs valeurs pour une meme colonne
    Par Aragorn) dans le forum SQL
    Réponses: 4
    Dernier message: 03/01/2008, 14h46
  4. Plusieurs valeurs pour une même colonne
    Par maxlegrand dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/10/2007, 13h32
  5. [Tableaux] Plusieurs valeurs pour une seule CheckBox
    Par Phenol dans le forum Langage
    Réponses: 2
    Dernier message: 01/03/2007, 17h54

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