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

 MySQL Discussion :

Mettre une variable pour le choix de la colonne dans requête mysql


Sujet :

MySQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2011
    Messages : 28
    Points : 14
    Points
    14
    Par défaut Mettre une variable pour le choix de la colonne dans requête mysql
    Bonjour,
    voilà, je voudrais gérer l'insertion d'une dans une base de données de données simple, mais dépendant de l'envoie d'un formulaire.
    Le problème est le choix de la colonne.
    Mon code est le suivant sans prendre en compte le formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    try{
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    	$bdd = new PDO('mysql:host=localhost;dbname=ledbname', 'id_connexion', 'mot_de_passe',$pdo_options);
    	$req = $bdd->prepare('INSERT INTO liste_noire_ext(email_ext, test) VALUES(:email_ext, :test)');
    		$req->execute(array(
    						'email_ext' => $lemail,
    						'test' => $desinscription
    						));
     
    	}
    catch (Exception $e)
    {
            die('Erreur : ' . $e->getMessage());
    }
    Et ça, ça marche. Parcontre, ce que je voudrais c'est remplacer "test" qui correspond à une colonne de ma table par le paramètre envoyé par le formulaire ($lelisting qui correspond à $_POST['listing'] du formulaire).
    Mais si je remplace test par $lelisting... plus rien ne fonctionne.

    J'espère être assez clair !

    Merci à ceux qui auraient une idée.

  2. #2
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    Il faudrait tout de même tester l'existence de la colonne dans la table avant de vouloir l'invoquer dynamiquement dans une requête.
    Après utiliser une requête préparée pour une syntaxe dynamique me semble contradictoire.

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Je serais curieux de savoir ce qu'il peut y avoir dans $_POST['listing'] !
    Faire une insertion avec une variable pour la colonne à alimenter est pour le moins étrange et je subodore un modèle de données non normalisé derrière cette bizarrerie.

    On peut avoir la structure de la table liste_noire_ext ?

  4. #4
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2011
    Messages : 28
    Points : 14
    Points
    14
    Par défaut
    Bonjour, et merci à vous.
    Désolé, pour ce retard de réponse, du boulot ailleurs.
    La structure de la table est simple : id / adresse_mail / col1 / col2
    ou col 1 et col 2 sont des "client".
    En effet, je fais quelque prestation de mail avec maxbulk et je voulais créer une page pour les désinscription, ce qui me permettrait de ne plus avoir à les traiter par copier/coller depuis les mails que je reçois pour cela.
    L'idée, était de faire en sorte qu'une colonne se créer automatique quand il y a un nouveau listing... en fait, c'est suffisamment rare pour que je le fasse à la main...
    Bref, il y a un lien de désinscription avec le nom du listing et l'adresse mail en paramètre GET... je récupère et insère dans des input invisible les deux données, puis j'ai un bouton valider pour la désinscription (avec avant un petit message).
    Quand les données sont traité en POST, je voulais vérifié si le listing existait (colonne de la base de donnée) avant de mettre les adresses mail.

    En tout cas, je suis toujours preneurs (ça peut servir) même si j'ai trouvé une solution plus "manuelle" (ajout du nouveau listing directement dans la base).

    Encore merci pour votre attention et votre aide...
    À lundi (long week-end ! )

  5. #5
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2011
    Messages : 28
    Points : 14
    Points
    14
    Par défaut
    Ah oui, juste un détail sur la structure... il y a une colonne avant auto-incrémentée pour la clé.

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par irma2011 Voir le message
    La structure de la table est simple : id / adresse_mail / col1 / col2
    ou col 1 et col 2 sont des "client".
    Il y a déjà une erreur de modélisation ici !
    En dehors du fait que "col1" et "col2" n'est pas explicite comme nom, si ces deux colonnes servent à enregistrer la même information "client", c'est une erreur.
    Il faut modéliser une association entre ce que vous appelez "client" et cette table qui ne semble contenir que des adrels. Vos explication ne m'ont par contre pas permis de comprendre quelle est la nature de cette association. À vous de le déterminer.

    MCD :
    adrel -1,n----associer----0,n- client

    Tables :
    adrel (adr_id, adr_adrel)
    client (clt_id, clt_nom...)
    client_adrel (cad_id_client, cad_id_adrel)

    En effet, je fais quelque prestation de mail avec maxbulk et je voulais créer une page pour les désinscription, ce qui me permettrait de ne plus avoir à les traiter par copier/coller depuis les mails que je reçois pour cela.
    L'idée, était de faire en sorte qu'une colonne se créer automatique quand il y a un nouveau listing...
    En principe, on détermine d'abord la structure des données puis le programme utilise cette structure mais ne la modifie pas. L'ajout d'une colonne ne devrait se faire que lors d'un changement majeur des spécifications d'un logiciel et/ou des données gérées. Pas lors de l'utilisation courante du logiciel.

    Le modèle que j'ai donné ci-dessus permet de simplement ajouter des clients et des associations entre les adrel et les clients sans toucher à la structure des données.

    Ce principe étant décrit, je ne sais pas si c'est suffisant pour votre besoin car je n'ai pas vraiment compris ces histoires de désinscription et de rapport entre les adrels et les clients.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2011
    Messages : 28
    Points : 14
    Points
    14
    Par défaut
    Bonjour,
    et merci pour cette réponse qui vient de me faire comprendre que ce que je croyais être une solution... n'en était pas une.
    Je vais repenser l'ensemble de mon projet et vous remercie sincèrement d'avoir pris le temps de vous pencher sur la nature même de mon problème.
    Je vais avoir une formation mysql d'ici peu ce qui va, je l'espère, me permettre de mieux appréhender ce que k'essaie de faire.

  8. #8
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par irma2011 Voir le message
    Je vais avoir une formation mysql d'ici peu ce qui va, je l'espère, me permettre de mieux appréhender ce que k'essaie de faire.
    Malheureusement, il est probable que la formation à MySQL n'apporte rien en matière de modélisation des données. Alors un peu de temps passé à la lecture de l'article de SQLPro sur la modélisation Merise et/ou au livre de Michel Diviné serait beaucoup plus profitable.
    Et plutôt que de prendre peut-être de mauvaises habitudes avec ce qui vous sera enseigné dans une formation spécifique à MySQL, il vaut mieux commencer par apprendre le SQL normalisé. Le site de SQLPro est la référence en la matière.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2011
    Messages : 28
    Points : 14
    Points
    14
    Par défaut
    Merci pour ces conseils, je prends note.
    La formation mysql est une formation que ma boite me donne... ça ne se refuse pas.
    Encore merci pour les conseils.
    Denis

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/06/2009, 15h06
  2. script c pour mettre une variable ds un fichier
    Par majong dans le forum Linux
    Réponses: 3
    Dernier message: 13/03/2008, 15h57
  3. Utiliser une variable pour mettre des étiquettes visible
    Par patate5555 dans le forum VBA Access
    Réponses: 8
    Dernier message: 21/06/2007, 13h51
  4. Réponses: 8
    Dernier message: 27/01/2007, 13h44
  5. [SGBD] Parser une variable pour mettre données dans bdd MySQL
    Par winnie82 dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 15/03/2006, 17h20

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