Création d'une table MySQL avec un nom variable
Résolu
DOKTEK
Messages postés
32
Statut
Membre
-
DOKTEK Messages postés 32 Statut Membre -
DOKTEK Messages postés 32 Statut Membre -
Bonjour à toutes et à tous
Je travail actuellement sur la création d'un site web où une des applications consiste à faire des devis en ligne. Pour cela j'ai besoin d'une astuce qui crée la BDD en fonction du numéro de devis. Seulement je ne sais pas comment m'y prendre. Le code fonctionne bien si je remplace "$variable" par "variable" mais bien entendu cela n'est pas le but.
Avec le code ci-après, le code est exécuté mais il ne se passe rien (pas de création de table). J'ai essayé de remplacer le variable ".$variable." par une constante alors le code fonctionne.
Si vous avez une idée, alors je suis preneur.
Merci
Ci-après mon code
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("devis"); // Connexion a la base de donnée "devis"
// requete de création de table
mysql_query("CREATE TABLE '.$variable.'
(
Fabricant varchar(20) NOT NULL,
Reference varchar(20) NOT NULL,
Designation varchar(50) NOT NULL,
Prix float NOT NULL,
Quantite mediumint(5) NOT NULL
)");
mysql_close(); //On ferme notre accès
exit ();
Je travail actuellement sur la création d'un site web où une des applications consiste à faire des devis en ligne. Pour cela j'ai besoin d'une astuce qui crée la BDD en fonction du numéro de devis. Seulement je ne sais pas comment m'y prendre. Le code fonctionne bien si je remplace "$variable" par "variable" mais bien entendu cela n'est pas le but.
Avec le code ci-après, le code est exécuté mais il ne se passe rien (pas de création de table). J'ai essayé de remplacer le variable ".$variable." par une constante alors le code fonctionne.
Si vous avez une idée, alors je suis preneur.
Merci
Ci-après mon code
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("devis"); // Connexion a la base de donnée "devis"
// requete de création de table
mysql_query("CREATE TABLE '.$variable.'
(
Fabricant varchar(20) NOT NULL,
Reference varchar(20) NOT NULL,
Designation varchar(50) NOT NULL,
Prix float NOT NULL,
Quantite mediumint(5) NOT NULL
)");
mysql_close(); //On ferme notre accès
exit ();
A voir également:
- Création d'une table MySQL avec un nom variable
- Table ascii - Guide
- Table des matières word - Guide
- Creation compte gmail - Guide
- Création site web - Guide
- Création d'un compte google - Guide
3 réponses
Euh, il faudrai plutot que vous n'ayez qu'un seul table devis et que vous ajouter des enregistrements a celle çi.
Cordialement, KIGARSK
Cordialement, KIGARSK
Bonjour
Tu te mêmes les pinceaux entre les " et les '.
Puisque tu commences ta chaîne CREATE TABLE avec un ", tu devrais avoir aussi un " après TABLE.
Même remarque pour la dernière partie de ta requête.
Ça devrait donc donner :
Par ailleurs, les fonctions mysql_ sont obsolètes et seront prochainement retirées de PHP, il vaudrait mieux utiliser mysqli ou PDO.
Et aussi, comme le Kigarsk, créer des tables dynamiquement est rarement une bonne idée. Il vaut mieux prévoir un champ supplémentaire pour indiquer à quel devis se rattache une ligne plutôt que de créer X tables identiques pour les différents devis.
Tu te mêmes les pinceaux entre les " et les '.
Puisque tu commences ta chaîne CREATE TABLE avec un ", tu devrais avoir aussi un " après TABLE.
Même remarque pour la dernière partie de ta requête.
Ça devrait donc donner :
mysql_query("CREATE TABLE ".$variable." ( Fabricant varchar(20) NOT NULL, Reference varchar(20) NOT NULL, Designation varchar(50) NOT NULL, Prix float NOT NULL, Quantite mediumint(5) NOT NULL )");
Par ailleurs, les fonctions mysql_ sont obsolètes et seront prochainement retirées de PHP, il vaudrait mieux utiliser mysqli ou PDO.
Et aussi, comme le Kigarsk, créer des tables dynamiquement est rarement une bonne idée. Il vaut mieux prévoir un champ supplémentaire pour indiquer à quel devis se rattache une ligne plutôt que de créer X tables identiques pour les différents devis.