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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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
    log la requete qui est generée et test la dans un outil comme adminer ou phpmyadmin

  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
    désolé je n'ai pas tout compris...

    log la requête?

  9. #9
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    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 323
    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

  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 ça change rien
    J'ai lu les liens proposé, et vu les différentes normalisation pour les BDD, mais cela ne répond pas à mon besoin.

    Par rapport à l'usage que j'ai dans le site, la réponse reste de pouvoir ajouter et supprimer une colonne dans une table de la base de donnée.

  11. #11
    Membre chevronné
    Inscrit en
    Mai 2008
    Messages
    350
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 350
    Par défaut
    Je pense pourtant que si ca repond a ton besoin.
    Si tu as encore des doutes exposes nous le probleme complet, on t'aidera a l'etudier.

  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
    mon problème n'est pas de créer des relations entre table pour éviter des redondances (en résumé)

    la problèmatique est la suivante :
    dans un catalogue il y a :
    _ X catégorie contenant Y produits qui eux mêmes contiennent Z articles

    en parallèle il y a des options de broderie, pour chaque option il y a un code de tarification.
    _ il y a n code de tarification de broderie

    on veut pouvoir répartir les differents codes de tarification broderie en fonction des Y produits.

    ok pour la table produits d'un côté, et la table tarification broderie de l'autre.

    Mais créér une table R_prod_tarif par exemple ne me semble pas approprié car cela engendre une ligne pour chaque couple #id_produit/#id_tarif
    un peu lourd je pense aussi en cas de modification exemple :
    _ si on supprime un code de tarif => il faudra supprimer en parallèle toutes les lignes #id_tarif correspondante dans la table r_prod_tarif

    tandis que si on gere par un système d'ajout/suppr de colonne on aurait :
    _ la table tarif
    _ la table produit

    quand on crée un tarif A => ça créé une colonne A dans la table produit
    => chaque ligne produit a alors dans la colonne une valeur NULL si ce produit n'est pas impacté par ce tarif, ou une valeur #id_tarifA si le produit est impacté par ce tarif.
    Si on supprime le tarif cela supprime donc directement la colonne puisque le tarif n'existera plus.
    si on modifie un produit pour dire qu'il a acces maintenant a ce tarif alors la valeur NULL prend la valeur #id_tarifA


    Je ne sais pas si cela vous semble plus clair maintenant ?

  13. #13
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    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 323
    Par défaut
    Citation Envoyé par whitetiger1980 Voir le message
    Mais créér une table R_prod_tarif par exemple ne me semble pas approprié car cela engendre une ligne pour chaque couple #id_produit/#id_tarif
    un peu lourd je pense aussi en cas de modification exemple :
    _ si on supprime un code de tarif => il faudra supprimer en parallèle toutes les lignes #id_tarif correspondante dans la table r_prod_tarif
    Tu ne dois pas te poser ce type de question "c'est un peu lourd"

    Tu dois juste te demander si c'est une relation simple ou multiple :
    tu as plusieurs code de tarification pour un produit
    et(ou) plusieurs produits pour un code de tarification

    En fonction de cette réponse, "le format" de tes tables est obligatoire, que se soit lourd,complexe ou simple n'a aucune importance.
    Ici tu viens de faire le MCD... et tu devrais passer à l'étape suivante

    a revoir pour toi le passage : MCD - MLD
    http://cyril-gruau.developpez.com/merise/

  14. #14
    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
    Citation Envoyé par whitetiger1980 Voir le message
    Je ne sais pas si cela vous semble plus clair maintenant ?
    Bonjour,


    Vous remettez en question des années de pratique de la modélisation de donnée (je ne parle pas de mon cas mais de la méthode générale)

    Ceci sur un simple "je penses que".


    La seule réponses constructive que je pourrais émettre :
    Faites 2 prototypes avec les deux solutions, et faites des tests de monté en charge avec des utilisateur simultanés.

    Le verdict (que l'on peut extrapoler sans se poser de question) :
    - votre méthode : l'application s'effondrera assez rapidement au moindre ajout / supp de tarif
    - la méthode normale : pas de problème dans les limites des perfs du serveur.

  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
    pour répondre à la question :

    un code tarif peut s'appliquer à plusieurs produits

    ET

    un produit peut avoir plusieurs code de tarif

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