2012-09-16 83 views
0

這是代碼:從循環創建多個MySQL表?

<?php 
$months= array("january", "november", "december"); 
$db_server = include('root.php'); 
if (!$db_server) die("Unable to connect to MySQL: " . mysql_error()); 
mysql_select_db('info'); 
for ($i=0; $i < $months; $i++){ 
    $query1 = "CREATE TABLE {$months[$i]} (
    StIDf CHAR(10) NOT NULL, FulNam TEXT NOT NULL, ComNam TEXT NOT NULL,Add TEXT ,Tel TEXT)"; 
} 
?> 

但它不工作。我需要從一個循環創建幾個表。有可能這樣做嗎?

+3

請不要這樣做。只需一張桌子,併爲該月份添加一個額外的列。 –

+0

我的桌子真的很大型,它使編碼如此之大,所以我想通過循環做一個表 – sadpcd201209

回答

1

試試這個:

<?php 
$months = array("january","november","december"); 
$db_server = include('root.php'); 

if (!$db_server) die("Unable to connect to MySQL: " . mysql_error()); 

mysql_select_db('info'); 

foreach($months as $month) { 
    $query1 = "CREATE TABLE {$month} (" 
      . "StIDf CHAR(10) NOT NULL, " 
      . "FulNam TEXT NOT NULL, " 
      . "ComNam TEXT NOT NULL, " 
      . "Add TEXT, " 
      . "Tel TEXT " 
      . ")"; 
    $result = mysql_query($query1); 
} 
?> 

你的代碼是不執行mysql_query(或庫MySQLi或PDO的替代品),因此沒有在數據庫中執行。

1

你永遠不會執行實際的查詢,加入這一行裏面的for循環:

mysql_query($query1);

此外,你應該使用count($month)以找出有多少項目包含的內容。

for ($i = 0; $i < count($months); $i++) { 
    $query1 = "CREATE TABLE {$months[$i]} (
    StIDf CHAR(10) NOT NULL,FulNam TEXT NOT NULL, ComNam TEXT NOT NULL,Add TEXT ,Tel TEXT)"; 
    mysql_query($query1); 
} 

另外,我建議使用mysqlimysql PDO而不是舊的,將在未來被廢棄,MySQL的API。瞭解更多關於在這裏:​​http://se2.php.net/manual/en/mysqlinfo.api.choosing.php

+0

我剛剛開始php 我會嘗試mysqli – sadpcd201209