[英]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.