0
$query1=mysql_query("SELECT Quantityy FROM `corro`.`food` where  `food`.`id` LIKE $id");
$rows = array();

while($r = mysql_fetch_assoc($query1)) {

    $output = $r['Quantityy'];

        //encode the returned data in JSON format
        echo $output;
        $query2=mysql_query("UPDATE food SET Quantityy = Quantityy - 1` where  `food`.`id` LIKE $output");
}

?>
4

4 回答 4

0

第二个查询中有一个 ` 字符,你不能输入。

yy = Quantityy - 1` where
                  ^
于 2013-11-15T10:00:47.643 回答
0
$query1=mysql_query("SELECT Quantityy,id FROM `corro`.`food` where  `food`.`id` LIKE $id");

并在循环中:

$query2=mysql_query("UPDATE food SET Quantityy = Quantityy - 1 where  `food`.`id` LIKE ".$r["id"]);

请检查拼写...

于 2013-11-15T10:01:23.333 回答
0

您的 SQL 似乎到处都是,并且存在由随机反引号引起的语法错误。尝试使用单个 SQL 语句,而不是运行循环:

UPDATE `corro`.`food` 
SET `food`.`Quantityy` = (`food`.`Quantityy`- 1) 
WHERE `food`.`id` = $id AND `food`.`Quantityy` >= 0

还有,你为什么用LIKE时候使用=

在循环内部,您还引用了food. id按数量列?

于 2013-11-15T10:01:29.550 回答
0
 $q=FALSE;  
 while($r = mysql_fetch_assoc($query1)) {

$output = $r['Quantityy'];
if($q===FALSE){
$q =  $output-1;
}else{
    $q--;
}
    //encode the returned data in JSON format
    echo $output;
    $query2=mysql_query("UPDATE food SET Quantityy ={$q}` where  `food`.`id` LIKE $output");
}
于 2013-11-15T10:04:03.393 回答