Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.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更新mysql数据库中的连续行?_Php_Mysql - Fatal编程技术网

如何使用php更新mysql数据库中的连续行?

如何使用php更新mysql数据库中的连续行?,php,mysql,Php,Mysql,我有一个值列表,我正试图输入一个具有动态行数的mysql数据库。变量存储在$box1、$box2中,依此类推。我试图使用UPDATE在表的每个连续行中输入正确的值($box1在第一行中被选中,$box2在第二行中被选中,依此类推)。我不确定我必须在“while”循环中键入什么代码才能实现这一点 <?php // Retrieve data from Query String $box1 = $_GET['box1']; $box2 = $_GET

我有一个值列表,我正试图输入一个具有动态行数的mysql数据库。变量存储在$box1、$box2中,依此类推。我试图使用UPDATE在表的每个连续行中输入正确的值($box1在第一行中被选中,$box2在第二行中被选中,依此类推)。我不确定我必须在“while”循环中键入什么代码才能实现这一点

    <?php


        // Retrieve data from Query String
    $box1 = $_GET['box1'];
    $box2 = $_GET['box2'];
    $box3 = $_GET['box3'];
    $box4 = $_GET['box4'];
    $box5 = $_GET['box5'];
    $session = session_id();


        //build query
    $query = "SELECT * FROM sessionid WHERE sessionid='$session' ";

        //Execute query
    $qry_result = mysql_query($query) or die(mysql_error());

        // Insert the right quantity in each row for each consecutive box 
        $i=1;
        while($row = mysql_fetch_array($qry_result)){
            mysql_query("UPDATE `sessionid` SET `qt`='$box' .$i . '' WHERE `sessionid`='$session' ");
            $i++;
            }


    ?>

为什么不将变量
$box1
存储到$box5`数组中,而不是存储在5个变量中


然后可以使用
$box[$i]
调用相关值。

为什么不将变量
$box1
存储到数组中的$box5`而不是5个变量

然后,您可以使用
$box[$i]
调用相关值。

您需要

"UPDATE `sessionid` SET `qt`="'.$box.$i . '" WHERE `sessionid`="'.$session.'"
您还应该将值存储在数组中,而不是单独的
$box
变量

u-shld用途

$box[]
不是

你需要

您还应该将值存储在数组中,而不是单独的
$box
变量

u-shld用途

$box[]
不是


你必须记住一件最基本的事情:

数据库中没有连续的行。 所有行都是完全随机的。
你无论如何也不能依赖他们的自然秩序

要更新某一行,必须使用某个唯一字段来标识它。Mysql的标准自动递增id是最佳选择

始终将行的id存储在表单中,以便能够知道当前值属于哪一行。
把你的表格做成这样

<input type="text" name"box[1]" value="20">

其中
1
是实际行的id

还要注意,所有数据操作都必须使用POST方法执行,而不是GET方法


因此,在
$\u POST['box']
中,您将拥有一个成对数组
id=>value
,并且可以轻松地用它们构造更新查询。

您必须记住的最基本的事情是:

数据库中没有连续的行。 所有行都是完全随机的。
你无论如何也不能依赖他们的自然秩序

要更新某一行,必须使用某个唯一字段来标识它。Mysql的标准自动递增id是最佳选择

始终将行的id存储在表单中,以便能够知道当前值属于哪一行。
把你的表格做成这样

<input type="text" name"box[1]" value="20">

其中
1
是实际行的id

还要注意,所有数据操作都必须使用POST方法执行,而不是GET方法


因此,在
$\u POST['box']
中,您将拥有一个成对数组
id=>value
,并且可以轻松地用它们构造更新查询。

能否请您向我们提供表架构,并向我们提供有关连续行的更多信息。你是说连续身份证吗?如果您的表中有空格怎么办?请提供您的表模式,并提供有关连续行的更多信息。你是说连续身份证吗?如果表中有空格怎么办?将编辑行id存储在HTML表单中是个好主意。和+1对于了解数据库的最基本内容,假设我对文本框的名称进行了更改,那么如何实现自动增量id和$\u POST?至于自动增量,我相信它已经在您的表中实现了。如果没有-请在你的问题中发布表结构。我尝试使用你的方法使用数组,但在尝试这样做时,我遇到了语法错误。我对原始帖子进行了编辑,显示了我所拥有的和我所得到的错误。有什么提示吗?将编辑行id存储在HTML表单中是个好主意。和+1对于了解数据库的最基本内容,假设我对文本框的名称进行了更改,那么如何实现自动增量id和$\u POST?至于自动增量,我相信它已经在您的表中实现了。如果没有-请在你的问题中发布表结构。我尝试使用你的方法使用数组,但在尝试这样做时,我遇到了语法错误。我对原始帖子进行了编辑,显示了我所拥有的和我所得到的错误。有什么建议吗?你说得对。我尝试使用您的方法使用数组,但在尝试使用数组时出现语法错误。我对原始帖子进行了编辑,显示了我所拥有的和我所得到的错误。有什么建议吗?你说得对。我尝试使用您的方法使用数组,但在尝试使用数组时出现语法错误。我对原始帖子进行了编辑,显示了我所拥有的和我所得到的错误。有什么建议吗?