用PHP在多行MySQL表上划分数组内容
我几乎成功地分割了不同的阵列,并在MySQL数据库的表中准备它们,我将解释这种情况: 在主页面上,用户可以添加和删除表中的行。每行的表格都包含以下输入:用PHP在多行MySQL表上划分数组内容,php,mysql,arrays,Php,Mysql,Arrays,我几乎成功地分割了不同的阵列,并在MySQL数据库的表中准备它们,我将解释这种情况: 在主页面上,用户可以添加和删除表中的行。每行的表格都包含以下输入: input1.name = "product[]"; input2.name = "seller[]"; input3.name = "description[]"; input4.name = "quantity[]"; input5.name = "priece[]"; 因此,如果用户在每个数组中插入两行,将包含两种产品的描述,例
input1.name = "product[]";
input2.name = "seller[]";
input3.name = "description[]";
input4.name = "quantity[]";
input5.name = "priece[]";
因此,如果用户在每个数组中插入两行,将包含两种产品的描述,例如:
产品:PS3,PS4 ;
卖家:亚马逊、索尼
说明:100Gb、200Gb
数量:1,2
价格:100200
这是布局表:
问题出现了。我捕获了通过post输入的数据,但我不能将这些数据分布在几行上。我希望您将PS3和PS4分别放入MySQL表的第一行和第二行。到目前为止,数组仅在第一行实例化,然而,通过这种方式,只有一个产品。因此,有必要在数组的适当行中准备每个框。我不知道我是否清楚,但我想实现以下目标:
显然,表中的数据是手动输入的,而不是通过代码输入的。你理解对了吗。
这是我目前用来在不同行上发送多个数组的代码,但它不起作用
if(isset($_POST['sending']))
{
if($_POST['sending'] == "save")
{
$row_data = array();
foreach($_POST['sending'] as $key => $value)
{
$product=mysqli_real_escape_string($con,($_POST['product'][$row]));
$seller=mysqli_real_escape_string($con,($_POST['seller'][$row]));
$description=mysqli_real_escape_string($con,($_POST['description'][$row]));
$quantity=mysqli_real_escape_string($con,($_POST['quantity'][$row]));
$priece=mysqli_real_escape_string($con,($_POST['priece'][$row]));
$user=mysqli_real_escape_string($con,($_POST['user'][$row]));
$row_data[] = "('$product', '$seller', '$description','$quantity', '$priece', '$user')";
}
if (!empty($row_data))
{
$sql = 'INSERT INTO test(product,seller,description,quantity,priece,user) VALUES '.implode(',', $row_data);
$result = mysqli_query($con, $sql );
if ($result)
echo 'ADD COMPLETE!: ' . mysqli_affected_rows($con);
else
echo 'ERROR' ;
}
} // if ($_POST['sending'] == "save")
} // if (isset($_POST['sending']))
}//close method
如果我理解得很好,这就是它应该如何工作的
if(isset($_POST['sending']))
{
if($_POST['sending'] == "save")
{
$row_data = array();
foreach($_POST['sending'] as $key => $value)
{
$product=mysqli_real_escape_string($con,($_POST['product'][$row]));
$seller=mysqli_real_escape_string($con,($_POST['seller'][$row]));
$description=mysqli_real_escape_string($con,($_POST['description'][$row]));
$quantity=mysqli_real_escape_string($con,($_POST['quantity'][$row]));
$priece=mysqli_real_escape_string($con,($_POST['priece'][$row]));
$user=mysqli_real_escape_string($con,($_POST['user'][$row]));
array_push($row_data, "('$product', '$seller', '$description','$quantity', '$priece', '$user')");
}
foreach($row_data as $value){
if (!empty($value))
{
$sql = 'INSERT INTO test(product,seller,description,quantity,priece,user) VALUES '.$value;
$result = mysqli_query($con, $sql );
if ($result)
echo 'ADD COMPLETE!: ' . mysqli_affected_rows($con);
else
echo 'ERROR' ;
}
} // if ($_POST['sending'] == "save")
} // if (isset($_POST['sending']))
}//close method
那么,序列化,加上Php弃用的mysql的常见警告,有没有人能给我一个工作示例?什么是$row变量?通过它,我想我可以访问相应的行,但我不确定。代码不起作用。警告:为foreach提供的参数无效:foreach$\u POST['sending']作为$key=>$value为什么?我的错,我刚刚看到它,$\u POST['sending']不是数组,这就是它发出警告的原因。你需要做的是在$i=0的情况下避免每次使用$我终于解决了这个问题。然而,泰克斯寻求支持。