Это должно быть просто, но я не могу понять это
<?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.
Еще раз спасибо, ребята, ребята.
Это предполагает, что $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()
как предложения @artlung, но возможно, что список очень длинный, что не будет эффективным запросом.
Почему бы не использовать BETWEEN
?
$testid = 240;
$curid = 251;
$query = "SELECT * FROM wall WHERE id BETWEEN {$testid}+1 AND {$curid}";
foreach (range(240, 251) as $n) {
mysql_query("SELECT * FROM wall WHERE id='".$n."'")
}
Кроме того, вы можете сделать это с одним запросом.
$curid