Il est possible d'exécuter des commandes CREATE TABLE, par contre ici tu as deux problèmes.
D'abord la syntaxe d'une commande CREATE TABLE doit présenter la structure de la table à créer :
CREATE TABLE exemple (
colonne1 type,
colonne2 type,
etc.
);
Ensuite, même si tu corriges le premier point tu t'exposes à des injections SQL graves ... Il te faut avant tout contrôler la valeur saisie par le formulaire et t'assurer de sa sécurité avant de l'utiliser dans ta requête ...
Enfin, vouloir créer une table "à la volée" est souvent signe d'un problème de conception ... L'application ne doit pas modifier le modèle de la base de données ... Si il manque une table, c'est qu'il y a un problème ...
Je suis tout à fait d'accord avec toi pour la sécurité et la structure, mon exemple était juste pour l'insertion de la variable dans EXISTS ".$create_table."";
De ce que tu me dis, il est plus judicieux de faire une table, avec 10 20 30 colonnes, quitte à ce qu'il y est des colones avec des NULL dedans, plutôt que de faire des tables et des tables avec juste ce qu'il faut dedans ?
De ce que tu me dis, il est plus judicieux de faire une table, avec 10 20 30 colonnes, quitte à ce qu'il y est des colones avec des NULL dedans, plutôt que de faire des tables et des tables avec juste ce qu'il faut dedans ?
Ce n'est pas ce que je dis ... Cela va dépendre de ton contexte ... Peux-tu expliquer plus précisément ton projet, les fonctionnalités, le type de données, etc.
Par ailleurs, la première chose à faire c'est de la conception, un MCD. Regarde le document "Conception BDD" dans ma signature, et essaye d'utiliser un petit logiciel de modélisation genre JMerise, cela t'aidera à bien formaliser les choses et te facilitera grandement la création de ta base ...
Si tu veux j'essaye de construire un page ou des joueurs peuvent créées des championnat de voiture sur console afin de developper l'e-sport, un peu délaisser dans cette catégorie par les éditeurs.
En cliquant sur un lien j'aimerais amener l'utilisateur sur une page avec des inputs où il va renseigner :
une petite image pour la vignette, une grande pour l'image de fond, le règlement de son championnat ( TEXT ), le calendrier des épreuves (DATE), les restrictions (TEXT).
Et en même temps, j'aimerais qu'une table avec le nom du championnat se créée pour pouvoir recevoir les inscriptions et pouvoir classer les futurs pilotes sans se mélanger avec les autres championnat qui seront déjà créés
j'aimerais qu'une table avec le nom du championnat se créée pour pouvoir recevoir les inscriptions et pouvoir classer les futurs pilotes sans se mélanger avec les autres championnat qui seront déjà créés
Ce n'est pas comme cela qu'il faut voir les choses ... En tout cas si tu veux modéliser en respectant les règles de normalisation et les bonnes pratiques de bases de données relationnelles ...
Ce n'est pas un logiciel qui va te permettre de concevoir proprement une base de données ... Personnellement je te conseille JMerise qui te permettra de générer ton code SQL directement une fois ton modèle conceptuel validé ... magique
Pour ton cas, un début de MCD serait :
Ce que JMerise te transforme en MLD directement :
Et te génère le SQL :
#------------------------------------------------------------
# Table: joueur
#------------------------------------------------------------
CREATE TABLE joueur(
id_joueur Int Auto_increment NOT NULL ,
email Varchar (100) NOT NULL ,
pseudo Varchar (50) NOT NULL
,CONSTRAINT joueur_PK PRIMARY KEY (id_joueur)
)ENGINE=InnoDB;
#------------------------------------------------------------
# Table: championnat
#------------------------------------------------------------
CREATE TABLE championnat(
id_championnat Int Auto_increment NOT NULL ,
date_creation Datetime NOT NULL ,
titre Varchar (50) NOT NULL ,
description Text NOT NULL ,
id_joueur Int NOT NULL
,CONSTRAINT championnat_PK PRIMARY KEY (id_championnat)
,CONSTRAINT championnat_joueur_FK FOREIGN KEY (id_joueur) REFERENCES joueur(id_joueur)
)ENGINE=InnoDB;
#------------------------------------------------------------
# Table: epreuve
#------------------------------------------------------------
CREATE TABLE epreuve(
id_epreuve Int Auto_increment NOT NULL ,
titre Varchar (50) NOT NULL ,
date_prevue Datetime NOT NULL ,
description Text NOT NULL ,
id_championnat Int NOT NULL
,CONSTRAINT epreuve_PK PRIMARY KEY (id_epreuve)
,CONSTRAINT epreuve_championnat_FK FOREIGN KEY (id_championnat) REFERENCES championnat(id_championnat)
)ENGINE=InnoDB;
#------------------------------------------------------------
# Table: participe
#------------------------------------------------------------
CREATE TABLE participe(
id_epreuve Int NOT NULL ,
id_joueur Int NOT NULL ,
score Numeric NOT NULL
,CONSTRAINT participe_PK PRIMARY KEY (id_epreuve,id_joueur)
,CONSTRAINT participe_epreuve_FK FOREIGN KEY (id_epreuve) REFERENCES epreuve(id_epreuve)
,CONSTRAINT participe_joueur0_FK FOREIGN KEY (id_joueur) REFERENCES joueur(id_joueur)
)ENGINE=InnoDB;
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Désolé, mais je ne vois pas mes erreurs
www.community-technologie.fr
Désolé, mais je ne vois pas mes erreurs
www.community-technologie.fr
Désolé, mais je ne vois pas mes erreurs
www.community-technologie.fr
Désolé, mais je ne vois pas mes erreurs
www.community-technologie.fr