簡體   English   中英

使用動態創建的表單創建MySQL表

[英]Create MySQL Table Using Dynamically Created Form

我一直在嘗試創建一種表單,該表單允許用戶使用動態生成自的表來創建MySQL表。 用戶首先輸入所需的表名,然后輸入所需的行數。 當他們鍵入數字時,將創建等量的表單行。 創建的每個字段的名稱都類似於“ fieldName []”。 我的希望是創建一個數組,然后使用創建的數組來完成表創建查詢。 如果我使用類似的方法,我可以按照我想要的方式工作:

$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;
}

您需要在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;

這將遍歷數組並將每個表名放入字符串中,您以后可使用該字符串來創建表。

(我目前無法對此進行測試,但是應該可以)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM