2014-09-12 109 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