comment crééer plusieurs tables mysql

Eléphanteau du PHP | 16 Messages

19 déc. 2010, 03:16

Je cherche à automatiser la création des tables pour une base MySQL. La difficulté vient du fait de crééer plusieurs tables.
Voici mon code actuel. mysql_query n'accepte qu'une ordre d'exécution donc dès que je mets 2 tables ça ne fonctionne plus. Idéalement j'aimerai garder les instructions sql dans un fichier séparé mais affiché le résultat dans la page actuelle.
$connect = mysql_connect($server, $username, $password);
// Connection to the db server
if(mysql_connect($server, $username, $password)) { 
  echo '<p class="success">Connected to the server</p>'; 

// Create the db
if(mysql_query("CREATE DATABASE $databasename DEFAULT CHARACTER SET utf8",$connect)) {
  echo '<p class="success">Database created</p>';

// Create table
mysql_select_db($databasename, $connect);
$tablecreation = "CREATE TABLE users
(
ID int NOT NULL AUTO_INCREMENT, 
PRIMARY KEY(ID),
Name varchar(30),
Username varchar(20) UNIQUE,
Password varchar(32),
UserType varchar(35),
Modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)";

if (mysql_query($tablecreation,$connect)) {
  echo '<p class="success">' ."Table created". '</p>';

ViPHP
xTG
ViPHP | 7331 Messages

19 déc. 2010, 08:20

Tu peux agencer le contenu de ton fichier pour qu'il y ai une ligne d'écart entre chaque requête, donc un double \n.
Ainsi avec un simple explode("\n\n",$fichier) tu obtiens tes requêtes. Ensuite une simple boucle foreach et un mysql_query() dedans et le tour est joué. :)