Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将数组数据更新到循环内的数据库_Php_Mysql_Arrays - Fatal编程技术网

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功能的问题。但是现在我可以用我自己的方法来做。对不起,我不太清楚如何使用此代码。您可以进一步解释吗?谢谢