我有一个循环,根据输入的数字迭代多次。循环迭代并动态生成所需数量的表单。我想使用收集的表单数据存储在数据库中。
我的循环正在运行。表单的生成次数与指定的次数相同。数据将插入到数据库中,但表列显示空白数据。正在创建行但列是空白的。
我尝试了很多但是找不到代码的错误。任何帮助将不胜感激。
<form action = '<?php echo $_SERVER['PHP_SELF']; ?>' method = 'post'>
How many questions ?
<input type = 'number' name = 'number1'>
<input type = 'submit' value = 'go'>
</form>
<?php
$number = $_POST['number1'];
?>
<?php
for($i = 1; $i<$number; $i++)
{
?>
<form action = '<?php echo $_SERVER['PHP_SELF']; ?>' method = 'post'>
<input type = 'text' name = 'name<?php echo $i; ?>'>
<?php
}
?>
<input type = 'submit' value = 'submit'>
<?php
for($i = 1; $i<$number; $i++)
{
$namee = $_POST['name'.$i];
$user = 'root' ;
$password = 'password';
$host = 'localhost' ;
$database = 'database1';
$db = mysqli_connect($host, $user, $password, $database) or die('Error querying') ;
$query = "INSERT INTO table1(question)" . "VALUES ('$namee')" ;
mysqli_query($db, $query) ;
mysqli_close($db);
}
?>
答案 0 :(得分:0)
编辑:哦,当你编辑你的问题时......
答案在这里:
$_POST['name.$i'];
将其更改为$_POST['name'.$i];
并阅读有关连接here的内容。
Edit2:您没有检查是否发送了变量。当您点击第一个提交按钮时,您没有向$_POST['name*']
提供任何文本,因为正在创建该表单。当您使用填充名称点击提交时,帖子中没有数字。在这里你有重写的脚本。寻找那里的一切。你不需要创建mysql连接X次,一次是enought。另请参阅我为您过滤函数,因为您没有使用PDO语句。您可以在此处查看intval()
功能。您的家庭作业将是了解如何过滤$name
。然后还检查用户是否真正填写表格非常重要。这个脚本甚至没有达到50%的好。如果您将达到脚本正常的程度,请阅读PDO语句&amp;输入数组&amp;等...... ..
<?php
$number = intval($_POST['number1']);
$forms = intval($_POST['forms']);
if($forms)
{
$user = 'root' ;
$password = 'password';
$host = 'localhost' ;
$database = 'database1';
$db = mysqli_connect($host, $user, $password, $database) or die('Error querying') ;
for($i = 1; $i <= $number; $i++)
{
$name = $_POST['name'.$i]; //how would you filter that one?
if(!empty($name))
mysqli_query($db, "INSERT INTO table1(question)" . "VALUES ('$name')") ;
}
mysqli_close($db);
}
?>
<form action = '<?php echo $_SERVER['PHP_SELF']; ?>' method = 'post'>
How many questions ?
<input type = 'number' name = 'number1' value='<?= $number ?>'>
<input type = 'submit' value = 'go'>
</form>
<?php
if($number > 0)
{
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">'; //X forms is also not needed, one is enough
for($i = 1; $i<$number; $i++)
{
echo '<input type = "text" name = "name'.$i.'">';
}
echo '
<input type = "submit" value = "submit">
<input type="hidden" name="forms" value="1" />
</form>
';
}
?>