目前,我将此代码循环遍历查询的整个结果:
$result = mysqli_query($con, $sql);
$data = array();
while($row = mysqli_fetch_array($result)) {
$name = $row ['name'];
$desc = $row ['description'];
$cat = $row ['category'];
$price = $row ['price'];
$quantity = $row ['quantity'];
$id = $row ['productID'];
$image = $row ['image'];
$arr = array();
$arr ["id"] = $id;
$arr ["name"] = $name;
$arr ["desc"] = $desc;
$arr ["cat"] = $cat;
$arr ["price"] = $price;
$arr ["quantity"] = $quantity;
$arr ["image"] = $image;
array_push($data, $arr);
}
echo json_encode($data);
我想将此更改为仅循环一定量的结果。我有一个名为$amount
的代码的变量,这是我想要的结果量。
我听说我应该使用mysql_result()
和for循环来计算$amount
,但我不确定我的现有代码如何与该设置一起使用!建议请。
编辑:
@Styphon指出我实际上并不需要改变我的迭代代码来解决这个问题。只需要在我的SQL查询中添加LIMIT
。
答案 0 :(得分:2)
$sql = "rest of query...
LIMIT $amount"; //This will limit it to whatever is $amount. Just make sure to have it on the end of your query.
$result = mysqli_query($con, $sql);
$data = array();
while($row = mysqli_fetch_array($result)) {
$arr = array();
$arr["id"] = $row['productID'];
$arr["name"] = $row['name'];
$arr["desc"] = $row['description'];
$arr["cat"] = $row['category'];
$arr["price"] = $row['price'];
$arr["quantity"] = $row['quantity'];
$arr["image"] = $row['image'];
array_push($data, $arr);
}
echo json_encode($data);
答案 1 :(得分:1)
无论你使用mysql_还是mysqli_(但你应该使用mysqli甚至是pdo),解决方案都是一样的。它就是这样的:
$num = 0;
$amount = 10;
while ($f = mysql_fetch_array($q)) {
// your code;
$num++;
if ($num==$amount) break;
}
正如你提到的循环,使用for循环你可能会做这样的事情
for ($i=0;$i<$amount;$i++) {
$f = mysql_fetch_array($q);
//your code
}
显然你应该根据自己的需要进行调整。
答案 2 :(得分:0)
SELECT * FROM tbl
LIMIT 0, $amount
这会将结果限制为$ amount。