0

我有一个问题可能很蹩脚,但它让我卡住了我有一个数据库查询

 $query_Recordset10 = "SELECT * FROM products 
  WHERE razdel='mix' AND ID='$ID+1' AND litraj='$litri' ORDER BY ID ASC";
$Recordset10 = mysql_query($query_Recordset10, $victor) or die(mysql_error());
$row_Recordset10 = mysql_fetch_array($Recordset10);
$totalRows_Recordset10 = mysql_num_rows($Recordset10);

这是根据页面上当前产品的 ID 查询该行中的下一个产品。

但是,如果与查询中的条件匹配的下一个产品是 2 个或更多 ID,我的周期就会中断。那么有没有办法跳过这些行并获得下一个符合条件的 ID。

非常感谢你。

4

5 回答 5

1

SELECT * FROM products
WHERE razdel='mix' AND ID > $ID AND litraj='$litri' ORDER BY ID ASC";

于 2010-06-15T14:06:13.257 回答
1

问题解决了。我还有很多东西要学。

SELECT * FROM products WHERE razdel='mix' AND ID>'$ID' AND litraj='$litri' ORDER BY ID ASC LIMIT 1

这是赖特线,但我的错误是 $ID 是如何生成的。

谢谢你们。

于 2010-06-15T15:07:51.827 回答
0

使用 foreach 遍历数组而不是尝试通过索引访问(如果您要获取每个值):

foreach ($records as $record) {
}

代替

for ($i = 0; $i < count($records); $i++) {
}

或者

$i = 0;
while ($i < count($records)) {

    $i++;
}

或者

$i = 0;
do {

} while (++$i < count($records));
于 2010-06-15T13:46:02.290 回答
0

请改用此查询:

SELECT * FROM products WHERE razdel='mix' AND ID>$ID AND litraj='$litri' ORDER BY ID ASC LIMIT 1

这将为您提供 ID 为 $ID 的元素之后的下一个元素。

于 2010-06-15T14:06:53.717 回答
0

将您的查询更改为:

$query_Recordset10 = "SELECT * FROM products 
    WHERE razdel='mix' AND ID > '$ID' AND litraj='$litri' ORDER BY ID ASC LIMIT 1";

因此,您仍然只返回 1 行(如果有任何要返回的话),但您将返回下一行(根据 ORDER BY ID ASC)与(可能)具有增量 ID 的行。

于 2010-06-15T14:07:51.660 回答