2014-09-12 111 views
0

我一直在嘗試創建一個允許用戶使用動態生成的表格創建MySQL表格。用戶最初輸入所需的表名,然後輸入他們想要的行數。當他們鍵入數字時,會創建等量的表格行。每個創建的字段都有一個名稱,如「fieldName []」。我希望創建一個數組,然後使用創建的數組完成表創建查詢。我能得到它的工作,我怎麼想,如果我使用的是這樣的:使用動態創建表格創建MySQL表格

$myarray = array("key1"=>array($fieldName[0],$fieldName[1],$fieldName[2]), 
    "key2"=>array($fieldType[0],$fieldType[1],$fieldType[2]), 
    "key3"=>array($fieldLength[0],$fieldLength[1],$fieldLength[2])); 

的Javascript動態記錄創造者:

function numFields(nums) { 
var str = ""; 
for (i = 0; i < nums; i++) { 
    str += '<p><label style="padding-left:10px;">Name: <input type="text" value="fred'+(i+1)+'" name="Name[]" id="newtblname'+(i+1)+'" /></label></p>'; 
} 
document.getElementById('Fields').innerHTML = str; 
} 

而且PHP:

if (isset($_GET['tabletest'])) { 
$Name=$_POST['Name']; 
$x=0; 
foreach($Name as $value) { 
    $names= $value; 
    echo $Name[$x]; 
    echo "<br>"; 
    $x++; 
} 
} 

解決方案:這裏是我上班的代碼:

$fieldsNum = $_POST['fieldsNum']; 
$tblName = $_POST['tblName']; 
$nameArray=$_POST['Name']; 
$x = 0; 

$tables = 'CREATE TABLE '.$tblName.' ('; 
foreach($nameArray as $value) { 
$tables .= $value . " CHAR(200)"; 
$x++; 
if($x<$fieldsNum) { 
$tables .= ", "; 
} 

} 
$tables .= ');'; 

echo $tables; 
} 
+0

親愛的你所描述的事情可以完成。但你必須更新你的問題,並顯示你有什麼嘗試。人們在這裏不會爲你編碼。他們會看到你的代碼,如果有人遺漏他們會給你提供建議。謝謝。 – 2014-09-13 04:45:15

+0

這是在公共互聯網上嗎?如果是這樣,你將如何保護它? – tadman 2014-09-16 15:06:14

+0

我已經更新了我的問題,包括我嘗試過的東西。至於它是否在公共互聯網上。不,這是給我的同事和我。 – 2014-09-16 15:12:25

回答

0

你需要有一個形式,你的HTML這樣的:

<form method="post" action="tableCreate.php"> 
<input type="text" name="fieldName[]"><br> 
. 
. 
. 
<button type="submit">Go!</button> 
</form> 

然後在tableCreate.php你應該看到他們

$tableArray = $_POST['fieldName']; 
$tables = 'CREATE TABLE tblName (';  

foreach($tableArray as $value) { 
$tables .= $value . " CHAR(200), "; 
} 
$tables .= ');'; 

echo $tables; 

這將通過數組循環和字符串中把每表名您可以稍後使用它來創建表格。

(我目前無法測試,但應該沒問題)。

+0

這是有效的,除了最後有一個逗號阻止查詢工作。我需要找到一種方法來擺脫逗號。 – 2014-09-16 15:38:07

+1

工作了一下,我就開始工作了。我不知道如何/如果我可以發佈代碼作爲評論,所以請參閱我更新的問題以瞭解我如何更改它。謝謝您的幫助! – 2014-09-16 15:51:31

+0

@ChrisBuckley對不起 - 沒有看到你需要幫助的消息。據我瞭解,你現在好嗎?很高興我能以某種方式幫助你:) – 2014-09-16 19:13:55