Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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,我有一个数据库表,我需要根据一个字段更改另一个字段。每个id“选项id”有两个记录。每个记录都有一个排序顺序 So for example: 12345, 1 12345, 2 我需要能够找到任何具有相同ID的记录,其中一个用于排序顺序1,另一个用于排序顺序2。然后,我需要将排序顺序1更改为0,将排序顺序2更改为1。我想使用php来实现这一点是可能的。假设您可以自己处理连接字符串(我在这里假设PDO)。最近我不得不像这样交换号码 然后执行以下操作: $sql = "SELECT * FROM

我有一个数据库表,我需要根据一个字段更改另一个字段。每个id“选项id”有两个记录。每个记录都有一个排序顺序

So for example:
12345, 1
12345, 2

我需要能够找到任何具有相同ID的记录,其中一个用于排序顺序1,另一个用于排序顺序2。然后,我需要将排序顺序1更改为0,将排序顺序2更改为1。我想使用php来实现这一点是可能的。

假设您可以自己处理连接字符串(我在这里假设PDO)。最近我不得不像这样交换号码

然后执行以下操作:

$sql = "SELECT * FROM table_name WHERE sort_order = 2";
    while($row = $results->fetch(PDO::FETCH_ASSOC)){

        $sql_1 = "UPDATE table set sort_order = 0 WHERE sort_order = 1 AND option_type_id = " . $row['option_id']; //then execute query
        $sql_2 = "UPDATE table set sort_order = 1 WHERE sort_order = 2 AND option_type_id = " . $row['option_id']; //then execute query.
    }

逻辑是找到匹配的记录,将1更改为0,然后将2更改为1。相反的做法会把记录搞得一团糟。

行是否有一个ID字段来标识一个特定的行,而不管
选项\u ID
排序顺序
?如果您使用条令,事件例如,没有,除了每个选项\u ID都有两条记录之外没有其他ID字段。*注意:我忽略了实际的查询执行。我想你能搞定那部分,谢谢!这让我找到了我需要去的地方。