简单来说,我有一个表格,其中有三个完全相同的条目字段。它们的名称不同; 但是,当它们被发布时,它们具有相同的结构,只是名称前缀不同(即三个系统具有不同的名称前缀:它们将是windowstitle,mactitle,linuxtitle等)。
目前,我有一个过程,仅适用于一个同名条目,比如windowstitle(当然,如果填写了表格)
代码大致如下:
<?php
$title = $_POST['windowstitle'];
//validate info or redirect
if ($title != "" ) {
$title = mysql_real_escape_string($title);
$sql = "insert into newwindows (title) values ('$title');
$result = mysql_query($sql) or die ("Could not insert data into DB: " . mysql_error());
?>
此外,表单区块看起来像这样:
<form action="newuserprocess.php" method="post" enctype="multipart/form-data">
<div class="form">
<h3>Windows</h3>
<!-- title of system name -->
<p><label for="windowstitle"> edition of system </lable></p>
<input type="text" name="windowstitle" size=20 /><br />
</div>
<div class="form">
<h3>Mac</h3>
<!-- title of system name -->
<p><label for="mactitle"> edition of system </lable></p>
<input type="text" name="mactitle" size=20 /><br />
</div>
<p><input type="submit" id="submit" class="bigbutton" value="Upload" /></p>
</form>
然而,这样做会使其他形式被排除在外,唯一的区别是我想要输入的数据库和后缀值前缀不同。
因此,我想出了一个我认为很聪明的解决方案:
<?php
$arr = array('windows', 'mac', 'linux');
foreach ($arr as &$value) {
$title = $_POST['$valuetitle'];
//validate info
if ($title != "" ) {
$title = mysql_real_escape_string($title);
$sql = "insert into new$value (title) values ('$title');
$result = mysql_query($sql) or die ("Could not insert data into DB: " . mysql_error());
}
?>
然而,这并不起作用。我知道部分原因是因为
''
使变量显示为它本身,因此我的$_POST
将始终返回$value。另一个原因是与我的新数据库名称$new$value相同。正确的格式是什么?我该如何使其工作?
$sql = "insert into newwindows (title) values ('$title');
中是否缺少引号? - irrelephant