Creation d'une table dans mysql avec php

Fermé
syranovic Messages postés 9 Date d'inscription dimanche 18 décembre 2011 Statut Membre Dernière intervention 28 décembre 2011 - 18 déc. 2011 à 09:40
syranovic Messages postés 9 Date d'inscription dimanche 18 décembre 2011 Statut Membre Dernière intervention 28 décembre 2011 - 18 déc. 2011 à 23:12
Bonjour,

donc voila j'ai créer un fichier nommé inser.php, chargé de la création d'une nouvelle table dans ma base de donnée mysql dés que je clic sur mon bouton envoyer.
Le petit plus c'est que, le nom de ma nouvelle table c'est l'utilisateur qui l'encode grâce à un input tt bête insérer dans une page html exemple : <label>nom de la table :</label> <input name="nomtable" type="text" title="nomtable"/> sauf que, je ne sais pas comment insérer ma $_POST['nomtable'] dans ma page inser.php dont le voila le code :


<?php
mysql_connect("localhost", "root", "");
mysql_select_db(" coord ");
$requete="CREATE TABLE if not exists" .$_Post['nomtable']." (id int(1) primary key NOT NULL auto_increment,
adresse varchar(255) Not Null,
telephone varchar(255) Not Null,
mail varchar(255) Not null,
fax varchar(255) Not Null,
km int(11) Not null)";
$erreur=mysql_query($requete);
...
?>

Merci ^^
A voir également:

3 réponses

dariumis Messages postés 571 Date d'inscription mardi 16 mars 2010 Statut Membre Dernière intervention 18 avril 2018 63
18 déc. 2011 à 12:01
Salut,
comme ça plutôt:
<?php
//faut tester l"existence de la variable
if(isset($_POST['nomtable'])){
       $table=$_POST['nomtable'];
}else{
       $table=-1;
}
mysql_connect("localhost", "root", "");
mysql_select_db(" coord ");
$requete="CREATE TABLE if not exists" .$table." (id int(1) primary key NOT NULL
.........


$_POST['nomtable']
s'écrit en majuscule, et non comme ceci $_Post['nomtable']. De plus je te déconseille de faire comme ceci, c'est pas une très bonne idée de laissé l'utilisateur créer le nom d'une table... car il existe beaucoup de mots réservé dans MySQL, par exemple tu peux pas nommé une table "TABLE"; il faudra donc que tu teste tous les cas, pouvant provoqué des bug. Il vaut mieux que tu trouve un système pour nommer tes table.
0
syranovic Messages postés 9 Date d'inscription dimanche 18 décembre 2011 Statut Membre Dernière intervention 28 décembre 2011
18 déc. 2011 à 20:46
^^ merci, enfaite, j'ai une page html qui demande a l'utilisateur d'ajouter une province, et dans ma base de données j'ai 2 tables, chaque table est une province qui contient des adresses, des distances,... donc les noms qui seront attribuer a chaque nouvelle table est le nom d'une province forcement, donc voila, mes pour le bout de code que vous m'avais filer, ne fonctionne pas, il m'affiche une erreur au niveau de ma ligne mysql_select_db(" coord "); dont voici le texte :

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\wamp\www\projet\CreationCentre.php on line 4

il n'es pas heureux avec cette écriture:

$requete="CREATE TABLE if not exists" .$table." (id int(1) primary key NOT NULL auto_increment,
....
le fait de couper la chaine et insérer la variable ( j crois ), cette écriture vient de mon imagination car je ne vois pas comment insérer ma variable sans qu'elle soit considérer comme une string normale, donc peut être que ce n'est pas comme çà qu'on procède tt simplement.
0
dariumis Messages postés 571 Date d'inscription mardi 16 mars 2010 Statut Membre Dernière intervention 18 avril 2018 63
Modifié par dariumis le 18/12/2011 à 21:24
Salut, en fait j'ai fais une erreur:

$requete="CREATE TABLE if not exists ".$table." (id int(1) primary key NOT NULL auto_increment,
....

j'ai décalé un espace entre "exists" et "$table".

si, c'est comme ça qu'il faut faire pour intégrer une variable dans une string, tu peux faire comme ceci:

$verbe="fait";  
echo $phrase="il $verbe beau";  
echo $phrase="il ".$verbe." beau";  
echo $phrase='il '.$verbe.' beau';  
0
syranovic Messages postés 9 Date d'inscription dimanche 18 décembre 2011 Statut Membre Dernière intervention 28 décembre 2011
18 déc. 2011 à 23:12
$requete="CREATE TABLE if not exists $table (id int(1) primary key NOT NULL auto_increment,
...
voici ma requête l'erreur était a cause de l'espace que j'ai mis pour ma déclaration de ma db mysql_select_db(" coord "); donc voila faut pas avoir d'espace ce qui est tt a fait normale, je poste ce petit message au cas ou y a qlq un qu'il l'utilise ^^ c'est un open source donc pas d copyright ^^
0
syranovic Messages postés 9 Date d'inscription dimanche 18 décembre 2011 Statut Membre Dernière intervention 28 décembre 2011
18 déc. 2011 à 21:52
cool ^^ merci beaucoup dariumis, c'est juste c'était bien l'espace la source de l'erreur, merci encore, donc voila je veux ajouter un tag résolu sauf que je ne sais pas comment ^^'.
0