如何生成多个文本框然后插入数据库
Posted
技术标签:
【中文标题】如何生成多个文本框然后插入数据库【英文标题】:How to generate multiple text box then insert in database 【发布时间】:2015-03-29 09:01:48 【问题描述】:我的系统有问题。我需要将文本框相乘,然后在 mysql 中使用串联插入一列。我在我的系统中使用 php。具体来说,我的源代码是 ff:
这是索引
<html>
<head>
<title>Sample Text</title>
</head>
<body>
<form action="phpfunctionshandle.php" method="post" name="phpfunctionshandle">
<input type="number" name="text" />
<button type="submit" name="submit"value="Register">Submit</button>
<button type="reset"value="cancel">Cancel</button>
<input type="hidden" name="submitted" value="TRUE" >
</form>
</body>
</html>
这是索引的句柄
<html>
<head>
<title>Sample</title>
</head>
<body>
<form action="handlefinal" method="post" enctype="multipart/form-data" name="phpfunctionshandle">
<?php
include('config.php');
$text =$_POST['text'];
for ($x = 1; $x <= $text; $x++) // I use for loop to multiple text box
echo '<input type="text" name="sample value=""/>';
?>
<button type="submit" name="submit"value="Register" class="btn btn-primary">Submit</button>
<button type="reset"value="cancel" class="btn btn-success">Cancel</button>
<input type="hidden" name="submitted" value="TRUE" >
</form>
<Form name="handlefinal">
<?php
include('config.php');
$sample=$_POST['sample"'.$text.'"'];
$query = "INSERT INTO sample (text) VALUES ('$sample')";
$result = mysql_query($query) or die(mysql_error());
echo'success';
?>
</form>
</body>
</html>
我使用 for 循环根据我在索引上输入的内容来多个文本框。比如我在index.php的输入类型号中输入3,文本框会乘以3。我想要的结果是查询3相乘的文本框。 如果我在第一个文本框中输入 sample1,在第二个文本框中输入 sample2,在第三个文本框中输入 sample3。列文本中所需的数据库输出应为 样品 1、样品 2、样品 3。我试试这个,但结果是文本框的最后一个值只插入到数据库中。总之只有sample3。我不知道如何查询以及如何解决这个问题。有什么建议么?很抱歉发布我所有的源代码。感谢您的耐心等待。
【问题讨论】:
您在此处缺少引用"
:echo '<input type="text" name="sample value=""/>';
。应该是echo '<input type="text" name="sample" value=""/>';
【参考方案1】:
这里有几个问题:
您为所有输入赋予相同的名称,因此只有最后一个的值会传递到服务器。您可以使用表单中的数组来解决此问题,该数组将转换为$_POST
变量的数组:echo '<input type="text" name="sample[]" />';
我不喜欢将多个文本输入的输入放在一个数据库字段中,但如果必须,您可以在从表单获取值时连接它们:$samples = implode(',', $_POST['sample']); // separated by comma
如果您不发布任何文件,则不应使用enctype="multipart/form-data"
。
您遇到了 sql 注入问题。您应该切换到另一个数据库接口,因为 mysql_*
函数已被弃用并使用准备好的语句。
【讨论】:
tnx 伙计们为您提供所有帮助,好的,我会再试一次以上是关于如何生成多个文本框然后插入数据库的主要内容,如果未能解决你的问题,请参考以下文章
如何将选中的项目从checkedlistbox 插入SQL 数据库?