使用php更改mysql数据库中的值


Change values around in mysql database using php

我有下面的代码:

$do_id=$_GET['id'];
$new_workorder=$_GET['workorder'];
//get current workorder on file for record that will be updated
$query = "SELECT workorder FROM jvltodos WHERE id = '$do_id' LIMIT 1";
$bla = mysql_query($query);
$workorder_old = mysql_fetch_row($bla);
//get record for workorder on file that will have the new workorder
$query = "SELECT id FROM jvltodos WHERE workorder = '$new_workorder' LIMIT 1";
$bla = mysql_query($query);
$id_fix = mysql_fetch_row($bla);
if (isset($new_workorder) && $new_workorder!=$workorder_old) {
    //update the changed record
    $query = "UPDATE jvltodos
        SET workorder={$new_workorder}
        WHERE id = {$do_id}";
    $result = mysql_query($query);
    //update the record that had the old workorder
    $query = "UPDATE jvltodos
        SET workorder={$workorder_old}
        WHERE id = {$id_fix}";
    $result = mysql_query($query);
}

我将"id"answers"workorder"传递到url中,所以我首先获取它们。这样,我就将具有该"id"的记录更新为新的"工单"。到目前为止还不错。但我想找到具有该"工作订单"的记录,并用旧"id"中的"工作单"更新该记录。(简单地说:当我增加/减少"工单"时,我想切换两条记录)对我来说,这看起来很简单,但并不奏效。第一件事(用新的工单更新id有效..但另一条记录保持不变..它保留了已经存在的工单)我错过了什么?(一定是我忽略的一些简单的东西。)

@andrewsi谢谢你的建议!我把代码拿出来,复制到另一个页面上,做了一些回声检查,看看发生了什么,这样我就很容易找出问题所在。

示例:$bla=mysql_query($query);$workorder_old=mysql_fetch_row($bla);

我想要的$workorder_old应该是一个数字。然而,这并没有发生,而是又回来了。。数组。当我把代码改成…

$bla = mysql_query($query);
$bla = mysql_fetch_row($bla);
$workorder_old = $bla[0];

它就像一个符咒。

小提示:我太习惯于在一步(另一种语言)中获取数据了,以至于我忘记了我需要在PHP中做一些步骤。我想是时候把它放到函数中了…:-)