0

我有一个带有 taskstatus 的表任务和带有 liststatus 的表,我想根据任务状态更新 liststatus。如果所有用户的任务状态为 0 则更新列表状态为 0 ,如果所有用户的任务状态为 1 则更新列表状态为 1。下面的函数更新查询不起作用,请告诉我原因。

   public function setcompletedtask($taskid, $taskstatus)
    {
    $result = mysql_query("UPDATE task SET taskstatus = '$taskstatus' WHERE taskid = '$taskid'");
    $y = mysql_affected_rows();
    for($i=0;$i<$y ;$i++)
        {
        $result=mysql_fetch_array($result);
        $taskidupdate = $result['taskid'];
        $resultselect = mysql_query("SELECT * FROM task WHERE taskid = '$taskidupdate'");
        //$no_of_rows = mysql_num_rows($resultselect);
        //if ($no_of_rows > 0) {
        $resultselect = mysql_fetch_array($resultselect);
        $resultlistid = $resultselect['listid'];
        $resulttaskstatus = $resultselect['taskstatus'];
        $resultupdate = mysql_query("UPDATE list SET liststatus = '$resulttaskstatus' WHERE listid = '$resultlistid'");
        //$resultupdate = mysql_fetch_array($resultupdate);
        }
        if ($resultupdate){return true;} else {return false;}

    }   
4

1 回答 1

0

你在做一个更新查询,你想怎么 mysql_fetch 呢!!!?

这是来自 php 网站的注释:http: //php.net/manual/en/function.mysql-query.php

对于 SELECT、SHOW、DESCRIBE、EXPLAIN 和其他返回结果集的语句,mysql_query() 成功时返回资源,错误时返回 FALSE。

对于其他类型的 SQL 语句,INSERT、UPDATE、DELETE、DROP 等,mysql_query() 在成功时返回 TRUE,在错误时返回 FALSE。

您应该首先选择所有符合您条件的记录,然后根据它们的主键字段更新它们......

于 2012-09-20T05:26:09.950 回答