Php 将数组数据更新到循环内的数据库
我面临将多个同名值更新到数据库的问题。Php 将数组数据更新到循环内的数据库,php,mysql,arrays,Php,Mysql,Arrays,我面临将多个同名值更新到数据库的问题。 //while loop { <input name="exists[]" value='$row1[Status_Name]'></input> } //while循环 { } 下面是我如何将数据更新到数据库 if (isset($_POST["updsts"])) { $gid = $_POST["id"]; $sqlq = "SELECT * FROM orderstatus WHERE Status_
//while loop
{
<input name="exists[]" value='$row1[Status_Name]'></input>
}
//while循环
{
}
下面是我如何将数据更新到数据库
if (isset($_POST["updsts"]))
{
$gid = $_POST["id"];
$sqlq = "SELECT * FROM orderstatus WHERE Status_Group = '$gid'";
$result = mysqli_query($conn, $sqlq);
$rowcount = mysqli_num_rows($result);
if ($rowcount == 0)
echo "No records found";
else
{
$x = '0';
while( $x<$rowcount)
{
$stsname = $_POST["exists[$x]"];
$sqlu = "UPDATE orderstatus SET
Status_Name = '$stsname'
WHERE Status_Group = '$gid'";
$x++;
}
}
if(isset($_POST[“updsts”]))
{
$gid=$_POST[“id”];
$sqlq=“从orderstatus中选择*,其中状态组=“$gid”;
$result=mysqli_查询($conn,$sqlq);
$rowcount=mysqli\u num\u行($result);
如果($rowcount==0)
回显“未找到记录”;
其他的
{
$x='0';
而($x您可以在post数组键上循环:
foreach ($_POST['exists'] as $val) {
// Do your updates here
}
此外,这段代码还有许多其他严重的问题需要注意
- 您不能转义HTML上下文中使用的任何数据。请对要连接到HTML中的任何任意数据使用
htmlspecialchars()
。否则,您可能会创建无效的HTML以及注入脚本的潜在安全问题
- 你不能逃避查询中使用的任何数据!目前,几乎任何人都可以对你的数据库数据做任何他们想做的事情。自动机器人会攻击这些脚本,并一直利用它们。始终使用参数化查询。永远不要将数据连接到查询上下文中
- 不需要此选择然后更新循环。只需使用一个更新
(1)请将代码对齐。(2)请添加php
标记。你是说Status\u Group和Status\u Name有一对多的关系吗?例如,让我们说gid='A'。可以有很多Status\u Name和gid='A'。是的,你是对的。你的更新SQL将用特定的Status\u Group更新所有行。因此,假设你有5行Status\u Group='A',你当前的SQL将l更新所有5行。如果特定状态组和状态名称只有一行(例如状态组='A'和状态名称='X'),SQL需要进一步的WHERE
子句。再添加一个WHERE
子句。和状态名称='$row1[状态名称]
@Nguaial ya,刚才我测试了很多方法,但是一直面临数据更新全部或无法获得post功能的问题。但是现在我可以用我自己的方法来做。对不起,我不太清楚如何使用此代码。您可以进一步解释吗?谢谢