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

Requêtes MySQL Discussion :

Requête PHP pour Ajouter / Supprimer une colonne dans une table SQL


Sujet :

Requêtes MySQL

  1. #1
    Membre averti
    Homme Profil pro
    administrateur support
    Inscrit en
    Octobre 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : administrateur support
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 22
    Par défaut Requête PHP pour Ajouter / Supprimer une colonne dans une table SQL
    Bonjour,

    quelqu'un pourrait-il m'aider pour créer une requête en php pour pouvoir ajouter une colonne dans une table SQL et une autre pour en supprimer une.

    le code que j'ai fait ne provoque pas de message d'erreur mais ne fait pas l'ajout ni la suppression.

    ma table est : produit
    $connexion : les identifiant de connexion a la Base de donnée.

    1/requête pour ajouter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $a2="ALTER TABLE produit ADD '$code'";
    $envoi_a2=mysqli_query($connexion,$a2) or die("execution de la requete impossible");
    2/requête pour suppression :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $b2="ALTER TABLE 'produit' DROP '$code'";
    $envoi_2b=mysqli_query($connexion,$b2) or die("execution de la requete impossible");
    Merci de votre aide

  2. #2
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Juillet 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Juillet 2011
    Messages : 21
    Par défaut tentative...
    Lu !

    J'ai regardé sur un autre site.

    Il est possible qu'il manque un ou des paramètres de création de colonne, étant donné que tu n'as pas de message d'erreur et que le traitement ne s'effectue pas.

    Dans la page précitée, ils indiquent :
    ALTER TABLE Nom_de_la_table
    ADD Nom_de_la_colonne Type_de_donnees

    Il te manque dans ta requete le type de données (INT, Text, VAR...)

    Concernant la suppression, il manque COLUMM :
    ALTER TABLE Nom_de_la_table
    DROP COLUMN Nom_de_la_colonne


    si ça peut t'aider... j'en serai fort aise !

    @ peluche

  3. #3
    Membre averti
    Homme Profil pro
    administrateur support
    Inscrit en
    Octobre 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : administrateur support
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 22
    Par défaut
    Merci mais hélas j'ai essayé aussi comme ça et ça ne marche pas ... je cherche encore

  4. #4
    Membre averti
    Homme Profil pro
    administrateur support
    Inscrit en
    Octobre 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : administrateur support
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 22
    Par défaut
    j'ai créer cette requête :

    $a2='ALTER TABLE produit ADD $code INT(3) NOT NULL;';
    $envoia2=mysqli_query($connexion,$a2) or die("execution de la requete impossible");

    celle-ci permet bien l'ajout d'une colonne dans ma table comme je souhaite MAIS le nom de la colonne reste $code au lieu de remplacer la variable par le code correspondant.
    Et quand je remplace les apostrophes par des guillemets => la requête ne fonctionne plus.
    Si je mets la variable $code entre guillemets ça ne marche pas non plus....comment faire pour que la requête fonctionne correctement et en permettant bien de prendre en compte la variable ET son contenu.

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    en dehors du probleme de php qui n'as pas sa place ici, je me demande bien quel process bizarre vous avez mis en place pour avoir besoin de faire du DDL à partir d'une application web

  6. #6
    Membre averti
    Homme Profil pro
    administrateur support
    Inscrit en
    Octobre 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : administrateur support
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 22
    Par défaut
    le concept est une interface de gestion sur le site permettant au futur propriétaire du site de gérer le contenu sans avoir à entrer dans le programme.

    Dans l'interface de gestion il faut qu'il puisse ajouter une donnée dans laquelle on sauvegardera des infos et à l'inverse pouvoir supprimer les données....

    Bref en résumé j'ai besoin de pouvoir ajouter une colonne dans une table de BDD et pouvoir supprimer une colonne en fonction de ce que l'utilisateur enregistre sur le site.

    j'espère que cela est plus clair.

    Donc pour faire cela j'ai besoin de PHP car l'utilisateur ne doit pas avoir accès à phpadmin ni à la BDD en direct.

  7. #7
    Membre chevronné
    Inscrit en
    Mai 2008
    Messages
    350
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 350
    Par défaut
    $a2='ALTER TABLE produit ADD $code INT(3) NOT NULL;';

    Pour php les chaines contenue entre 'chaine' ne change pas, il ne modifie donc pas ta variable. il faut que tu fasses :
    $a2='ALTER TABLE produit ADD '.$code.' INT(3) NOT NULL;';
    OU
    $a2="ALTER TABLE produit ADD $code INT(3) NOT NULL;";

  8. #8
    Membre averti
    Homme Profil pro
    administrateur support
    Inscrit en
    Octobre 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : administrateur support
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 22
    Par défaut
    bonjour et merci de la réponse, j'avais bien pensé à ça et donc j'ai déjà testé les deux solutions que tu me proposent mais cela ne fonctionnent pas d'où mon désarroi, je suis totalement perdu...

  9. #9
    Membre chevronné
    Inscrit en
    Mai 2008
    Messages
    350
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 350
    Par défaut
    Peux tu nous donner la partie de code qui pose problème avec la valeur de $code.

  10. #10
    Membre averti
    Homme Profil pro
    administrateur support
    Inscrit en
    Octobre 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : administrateur support
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 22
    Par défaut
    bonjour,

    je n'ai pas le fichier sous la main à mais il n'y a pas grand chose de plus que la requête de demande d'ajout.

    Dans un formulaire d'ajout de d'informations sur une page du site, la personne valide ce qu'elle doit ajoutée. Cela renvoi vers mon fichier de traitement. Dans la page de traitement on récupère les infos du formulaire dont l'information code que l'on place dans la variable $code (celle-ci est alors bien alimenté par le numéro du code j'ai vérifié) puis je veux alors créer une colonne correspondante à ce code dans ma table produit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $a2='ALTER TABLE produit ADD $code INT(3) NOT NULL;';
    $envoia2=mysqli_query($connexion,$a2) or die("execution de la requete impossible");
    pour information :
    $connexion=identifiant de connexion a la BDD (aucun pb à ce niveau non plus)
    j'ai également essayé :

    $a2="ALTER TABLE produit ADD $code INT(3) NOT NULL";

    $a2="ALTER TABLE produit ADD $code INT(3) NOT NULL;";

    $a2='ALTER TABLE produit ADD '.$code.' INT(3) NOT NULL;';



  11. #11
    Membre chevronné
    Inscrit en
    Mai 2008
    Messages
    350
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 350
    Par défaut
    log la requete qui est generée et test la dans un outil comme adminer ou phpmyadmin

  12. #12
    Membre averti
    Homme Profil pro
    administrateur support
    Inscrit en
    Octobre 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : administrateur support
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 22
    Par défaut
    désolé je n'ai pas tout compris...

    log la requête?

  13. #13
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 287
    Par défaut
    log = récupère la requete sql (par un echo $sql par exemple) et teste la dans phpmyadmin
    log = sauvegarde ta requete dans fichier

  14. #14
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 287
    Par défaut
    Citation Envoyé par whitetiger1980 Voir le message
    Dans l'interface de gestion il faut qu'il puisse ajouter une donnée dans laquelle on sauvegardera des infos et à l'inverse pouvoir supprimer les données....

    Le but des 'lignes' est bien d'ajouter(modifier-supprimer) des datas
    On ajoute-supprime jamais des colonnes pour sauvegarder des infos !

    dit-nous ce que tu souhaites sauvegarder

  15. #15
    Membre averti
    Homme Profil pro
    administrateur support
    Inscrit en
    Octobre 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : administrateur support
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 22
    Par défaut
    c'est un peu plus compliqué en fait :

    la personne ajoute une tarification (référencée donc dans une table tarif sous un code / un libellé de tarification / un tarif (montant) )
    et je veux qu'en meme temps que la personne ajoute sa tarification, ça ajoute dans ma table produit une colonne correspondant à ce code de tarification. Ainsi dans un second temps on pourra selectionner dans la table produit, les produits pour lesquels le code tarif s'applique ou pas.

    et inversement quand il supprime un code tarif cela doit donc être retirer en même temps de la table produit.

    est-ce plus clair ?

  16. #16
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 287
    Par défaut
    tu as bien lu : http://cyril-gruau.developpez.com/merise/
    pourquoi je pose la question ?

  17. #17
    Membre averti
    Homme Profil pro
    administrateur support
    Inscrit en
    Octobre 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : administrateur support
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 22
    Par défaut
    j'ai parcouru mais je ne trouve pas le cas qui correspondrai a ce que j'ai besoin

  18. #18
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    d'un point de vue conception :

    vous avez un produit qui est rattaché à une (voir plusieurs) tarification.


    Produit-0,1-------Possède-------0,n-Tarification


    D'un point de vue physique :
    Tarification(id_tar, ...)
    Produit(id_prod, #id_tar...)


    Du coup quand d'un point de vue fonctionnel, un utilisateur attache un nouveau code tarification à un produit, vous allez insérer une ligne dans tarification et l'affecter dans votre table produit.

  19. #19
    Membre averti
    Homme Profil pro
    administrateur support
    Inscrit en
    Octobre 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : administrateur support
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2013
    Messages : 22
    Par défaut
    Du coup quand d'un point de vue fonctionnel, un utilisateur attache un nouveau code tarification à un produit, vous allez insérer une ligne dans tarification et l'affecter dans votre table produit.

    Pas exactement :
    l'utilisateur ajoute un code tarif (insert une ligne dans tarification), mais ce code tarif peut s'affecter à plusieurs produits différents (les produits contenus dans la table produit).=> d'où le besoin d'ajout d'une colonne dans la table produit (ou suppr colonne quand le code tarif est supprimé)

  20. #20
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    non pas vraiment.

    On repart de la conception (MCD) :
    Produit-0,n------Possède-----0,n-Tarification

    On passe au physique (MPD) :
    Produit(id_prod, ...)
    Tarification(id_tar, ....)
    R_PROD_TARI(#id_prod, #id_tar)

    (en gras les clefs primaires, # pour indiquer une clef étrangère)


    Cette nouvelle table (R_PROD_TARI) permet de rattacher une tarification à plusieurs produits, et inversement.


    Vous devriez apprendre les bases de la modélisation si vous voulez que votre projet fonctionne sur du moyen / long terme.

    Une bonne base : http://fsmrel.developpez.com/basesre...?page=sommaire


    Il y a aussi une section sur ce site qui traite de la modélisation : http://www.developpez.net/forums/f62...sation/schema/

    Où il y a pas mal d'exemple.

Discussions similaires

  1. [XL-2007] Comment supprimer des lignes d'une plage dans une colonne sous condition
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 05/06/2015, 11h34
  2. Réponses: 6
    Dernier message: 24/05/2014, 12h36
  3. Réponses: 3
    Dernier message: 08/10/2013, 12h34
  4. [E-00] Syntaxe pour insérer une ligne ou une colonne dans une feuille
    Par Benjycool dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/02/2009, 09h27
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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