PHP确定两个数字之间的数字然后查询

时间:2010-06-14 06:38:53

标签: php mysql

这应该很简单,但我无法弄明白


<?php
$testid = 240;
$curid = 251;

$cal = $curid - $testid;
echo $cal;

?>

我想确定两个其他数字之间的数字,所以对于这个例子,它检测到$ testid和$ curid之间有11个数字,但我不需要它来做那个。

我需要它来计算$ curid之间的数字 - $ testid,在这个例子中将是241,242,243 ...一直到251然后我需要用这些数字创建一个循环并做一个查询下面的每一个

$cal = $curid - $testid;
mysql_query("SELECT * FROM wall WHERE id='".$cal."'")

// and for each number mysql should out put each data field with those numbers.

再次感谢,爱你们。

3 个答案:

答案 0 :(得分:4)

您可以使用range()作为@artlung建议列出数字列表,但列表可能很长,这不是一个有效的查询。

为什么不使用BETWEEN

$testid = 240;
$curid = 251;

$query = "SELECT * FROM wall WHERE id BETWEEN {$testid}+1 AND {$curid}";

答案 1 :(得分:3)

这假设$testid小于$curid

$testid = 240;
$curid = 251;
$numbers = range(($testid + 1), ($curid));
$query = 'SELECT * FROM wall WHERE id IN (' . implode(', ', $numbers). ')';

如果我print $query;我得到了:

SELECT * FROM wall WHERE id IN
    (241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251)

所以只需查询:

mysql_query($query);

有关range()implode()

的更多信息

答案 2 :(得分:-1)

foreach (range(240, 251) as $n) {
    mysql_query("SELECT * FROM wall WHERE id='".$n."'")
}

此外,您可以使用一个查询进行..