Création d'une table MySQL avec un nom variable

Résolu/Fermé
DOKTEK Messages postés 28 Date d'inscription mercredi 19 novembre 2014 Statut Membre Dernière intervention 3 mai 2015 - 16 févr. 2015 à 07:27
DOKTEK Messages postés 28 Date d'inscription mercredi 19 novembre 2014 Statut Membre Dernière intervention 3 mai 2015 - 21 févr. 2015 à 05:13
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 ();
A voir également:

3 réponses

Kigarsk Messages postés 64 Date d'inscription samedi 14 février 2015 Statut Membre Dernière intervention 17 février 2015 6
16 févr. 2015 à 09:25
Euh, il faudrai plutot que vous n'ayez qu'un seul table devis et que vous ajouter des enregistrements a celle çi.

Cordialement, KIGARSK
0
Utilisateur anonyme
16 févr. 2015 à 13:24
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 :
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.
0
DOKTEK Messages postés 28 Date d'inscription mercredi 19 novembre 2014 Statut Membre Dernière intervention 3 mai 2015
21 févr. 2015 à 05:13
Merci pour vos réponses
Entendu je vais créer une seule table

Dan
0