Créer une table dans mysql sur base d'un formulaire [Résolu/Fermé]

Signaler
Messages postés
126
Date d'inscription
jeudi 21 mars 2013
Statut
Membre
Dernière intervention
22 juin 2014
-
Messages postés
126
Date d'inscription
jeudi 21 mars 2013
Statut
Membre
Dernière intervention
22 juin 2014
-
Bonjour,

Je voudrais creer une table dans mysql qui porterait le nom envoyer avec un formulaire, j'ai essayer ce code, en le transformant un peu de toute les façon mais rien n'y fais.
Est ce que quelqu'un peu m'aider svp?
D'avance merci

<!doctype>
<html>
<?php


mysql_connect('localhost','root','Maryline93');
mysql_select_db('test');
mysql_query('CREATE TABLE '.$_POST['dbname'].'(login text NOT NULL,id mediumint NOT NULL)');
mysql_close();
echo $_POST['dbname'];
?>
</html>

9 réponses


Bonjour

A priori, ta requête n'est pas mauvaise si ton $_POST['dbname'] est correct. Visualise la requête et ajoute un or die(mysql_error()) pour avoir un message de diagnostic :

$requete='CREATE TABLE '.$_POST['dbname'].'(login text NOT NULL,id mediumint NOT NULL)';
echo $requete;
mysql_query($requete) or die(mysql_error());
Messages postés
126
Date d'inscription
jeudi 21 mars 2013
Statut
Membre
Dernière intervention
22 juin 2014

Voilà j'ai rajouter ce que vous avez indiqué mais rien n'y fait, j'ai toujours la même chose, à savoir

500 - Erreur interne au serveur.
Un problème est apparu avec la ressource que vous recherchez. Elle ne peut pas être affichée.

j'ai maintenant ce code la mais je suis débutant dans ce langage donc j'espére que je l'ai mis au bon endroit

<!doctype>
<html>
<?php


mysql_connect('localhost','root','Maryline93');
mysql_select_db('test');
$requete='CREATE TABLE '.$_POST['dbname'].'(login text NOT NULL,id mediumint NOT NULL)';
//mysql_close();
msql_query($requete) or die (mysql_error());


?>
</html>

Le message indique une erreur du serveur : ce n'est pas une erreur de syntaxe de PHP ni de mySQL.
Travailles-tu en local ou en ligne ?
As-tu essayé un script beaucoup plus simple, genre :
<!doctype html>
<html>
<head>
<title> titre</title>
</head>
<body>
<?php
echo 'coucou';
?>
</body>
</html>
Et essaye de respecter la syntaxe du HTML (DOCTYPE complet, head et body...
Et si tu ne t'y connais vraiment pas plus que ça, je te signale que c'est une très mauvaise idée de faire saisir un nom de table par un formulaire.
Messages postés
126
Date d'inscription
jeudi 21 mars 2013
Statut
Membre
Dernière intervention
22 juin 2014

Je travaille en ligne, oui j'ai déjà fais un forum et plein d'autre trucs et sa marche trés bien, le script affiche bien coucou, et la syntaxe html n'y change rien.

Ok c'est une mauvaise idée, je veux bien vous croire, ce que je veux faire au final c'est avoir un site avec des membres qui se connecteraient avec identifiant et mot de passe et que chacun de ces utitilisateurs aient une table différente pour y mettre des infos(pas leurs identifiants et mot de passe). Comment feriez vous?

Pour avancer sur la cause de l'erreur, ajoute tes lignes une après l'autre. Tu sauras laquelle cause l'erreur, on y réfléchira ensuite.

Pour ranger les infos de tes membres, la même table (avec un nom figé) peut très bien convenir pour tout le monde, en y mettant une colonne qui contient l'identifiant de ton membre. Car chaque membre a, je suppose, un identifiant unique.
Messages postés
126
Date d'inscription
jeudi 21 mars 2013
Statut
Membre
Dernière intervention
22 juin 2014

C'est cette ligne ci qui cause l'erreur

msql_query($requete) or die (mysql_error());

Qu'est ce que vous voulez dire par nom figé? je veux sauvegarder des mots dans une autre langue et leur traduction
Messages postés
126
Date d'inscription
jeudi 21 mars 2013
Statut
Membre
Dernière intervention
22 juin 2014

je crois que j'ai compris ce que vous voulez dire, je fais des enregistrements avec id, pseudo, password, mot anglais de type text, mot français de type text, c'est cela que vous vouliez dire?

Ne mélangeons pas les problèmes et réglons d'abord celui du plantage du serveur.
Tu dis que
 msql_query($requete) or die (mysql_error()); 
provoque une erreur 500 - Erreur interne au serveur.

Qu'affiche le echo $requete; juste avant cette ligne ?
Utilisateur anonyme
Je viens de remarquer :msql_query au lieu de mysql_query... Ça ne doit pas aider
Messages postés
126
Date d'inscription
jeudi 21 mars 2013
Statut
Membre
Dernière intervention
22 juin 2014

Bien vu ;) et maintenant sa marche, merci beaucoup :)