我需要帮助。什么似乎是我们的PHP代码的问题?我们似乎无法将数据插入到我们的数据库中。我只是一个初学者,我的任务是将多个数据存储到我们的数据库中。我们实际做的是输入一个数字(例如:5),并在该页面中显示5个表格。每个表格将包括姓名地址和电话号码。之后我们将其提交到我们的数据库。我们已经控制了很多表单,但是我们无法存储插入的数据。有人可以帮我们吗?谢谢。
form.php的
<form method="POST" action="form.php">
<input type="text" name="waw" />
<input type="submit" />
<?php
$i=0;
while ($i<$_POST['waw'])
{
?>
</form>
<form method="POST" action="input.php">
<!-- Person #1 -->
<input type="text" name="username[]" />
<input type="text" name="phonenum[]" />
<input type="text" name="add[]" />
<?php
$i++;
}
?>
<input type="submit" />
</form>
input.php
<?php
$username="maizakath";
$password="12345";
$database="tryinsert";
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die("<b>Unable to specified database</b>");
$sql_start = 'INSERT INTO `mytable` VALUES ';
$sql_array = array();
$queue_num = $_POST['waw'];
foreach ($_POST['username'] as $row=>$name)
{
$username = $name;
$phonenum = $_POST['phonenum'][$row];
$add = $_POST['add'][$row];
$sql_array[] = '(' . $username . ', ' . $phonenum . ', ' . $add . ')';
if (count($sql_array) >= $queue_num)
{
mysql_query($sql_start . implode(', ', $sql_array));
$sql_array = array();
}
}
if (count($sql_array) > 0)
{
mysql_query($sql_start . implode(', ', $sql_array))or die(mysql_error());
}
?>
答案 0 :(得分:3)
我已修改您的代码以使其正常工作:
form.php的
<form method="POST" action="form.php">
<input type="text" name="waw" />
<input type="submit" />
</form>
<form method="POST" action="input.php">
<?php
$i=0;
while ($i<$_GET['waw'])
{
?>
<!-- Person #1 -->
<input type="text" name="username[]" />
<input type="text" name="phonenum[]" />
<input type="text" name="add[]" /><br />
<?php
$i++;
}
?>
<input type="submit" />
</form>
input.php
<?php
$username="maizakath";
$password="12345";
$database="tryinsert";
mysql_connect('localhost',$username,$password);
@mysql_select_db($database) or die("<b>Unable to specified database</b>");
$sql_start = 'INSERT INTO `mytable` VALUES ';
$sql_array = array();
$queue_num = $_POST['waw'];
foreach ($_POST['username'] as $row=>$name)
{
$username = $name;
$phonenum = $_POST['phonenum'][$row];
$add = $_POST['add'][$row];
$sql_array[] = '("' . $username . '", "'.$phonenum.'", "'.$add.'")';
if (count($sql_array) >= $queue_num) {
$query_single=$sql_start . implode(', ', $sql_array);
mysql_query($query_single);
$sql_array = array();
}
}
if (count($sql_array) > 0) {
$query = $sql_start . implode(', ', $sql_array);
mysql_query($query)or die(mysql_error());
}
?>
工作正常。我刚刚在我的本地机器上测试过它。
编辑(评论):
在input.php中使用变量$ queue_num是没有意义的,因为这个变量只在form.php脚本中可用('wow'输入以另一种形式放置,提交给文件form.php,而不是输入.PHP)。所以if (count($sql_array) >= $queue_num)
块工作错误;
检查数据库连接的配置设置(正如我在评论中写的那样,你必须用名称'localhost'定义常量或用引号括起字localhost);
我修改了你的表单,因为它的结构错误;
我不明白在form.php中创建第一个表单的目的。
您可以修改此代码,使其更适合您的情况。但是第一次尝试使用这个。
注意。使用var_dump()函数在调试期间查看$ _POST数组,以了解可用的变量。
答案 1 :(得分:0)
我不确定在一个页面上有多个表单是否合理。
编辑:删除了代码,Alex的回答似乎对我来说。
答案 2 :(得分:0)
我曾尝试过它的工作正常但是当插入数据库时,如果用户没有填满整个字段,它也会插入空值。
答案 3 :(得分:0)
我已经在一个表中同时存储了两个数组。希望这会对你有所帮助。
<?php
$i = 0;
foreach($element_name as $element_names){
$element_value = $_POST['element_value'];
$element_names_insert = mysql_query("insert into wp_remote_fields
set
remote_fields = '".$element_names."',
remote_values = '".$element_value[$i]."'
");
$i++;
}
?>