-3
$quantity=$_POST['quantity'];

do{

 $request="SELECT id, name, type, price FROM `corro`.`food`";

$result=mysql_query($request);

}while(quantity>0)
4

5 回答 5

1

首先,您有一个语法错误:

while (quantity > 0) 

应该 :

while ($quantity > 0)

但是如果您执行代码,如果 $quantity 实际上大于 0 ,您将有一个无限循环:这只会一遍又一遍地执行您的查询,因为您永远不会减少 $quantity。

我猜你的表中有一个数量列,所以你应该做的是把条件放在你的 SQL 查询中。使用PDO会给你:

$stmt = $dbh->prepare("SELECT id, name, type, price FROM food WHERE quantity > ?");
$stmt->execute(array($_POST['quantity']));
$results = $stmt->fetchAll();

编辑(按照最新答案)

请注意,从 PHP 5.5.0 开始不推荐使用 mysql_*。您应该使用mysqliPDO

于 2013-11-15T09:23:05.083 回答
0

您的 while 循环无限次运行尝试为您的代码提供条件,如下面的演示代码

  $quantity=$_POST['quantity'];
  $quantity_count = 0;
  do{
        $request="SELECT id, name, type, price FROM `corro`.`food`";
        $result=mysql_query($request);
        $quantity_count++;
  }while($quantity>0 && $quantity_count < 10);     //This is demo code
于 2013-11-15T09:27:54.810 回答
0
$quantity=$_POST['quantity'];
if($quantity>0){
  $request="SELECT id, name, type, price FROM `corro`.`food`";
  $result=mysql_query($request);
}
于 2013-11-15T09:23:00.437 回答
0

只需在您的mysql_query

请注意,mysql_*函数现已弃用,不应使用。请改用mysqli。mysql 的查询将是SELECT id, name, type, price FROM corro.food WHERE quantity>0

于 2013-11-15T09:24:59.843 回答
0

根据您的评论,我认为是这样的:

$quantity=$_POST['quantity'];
$request="SELECT id, name, type, price FROM `corro`.`food` WHERE quantity>0";
$result=mysql_query($request);
于 2013-11-15T09:28:55.427 回答