|
|
|
|
|
для: Trianon
(13.04.2006 в 11:47)
| | вариант... спасибо | |
|
|
|
|
|
|
|
для: JonNik
(13.04.2006 в 11:45)
| | SELECT id FROM tab WHERE id < $d ORDER BY id DESC LIMIT 1
SELECT id FROM tab WHERE id > $d ORDER BY id ASC LIMIT 1 | |
|
|
|
|
|
|
|
для: Trianon
(13.04.2006 в 11:37)
| | не правильно, если в таблице например есть id = 1, 2, 3, 4, 5, то первый Ваш запрос выведет, при значении $d=3 выведет 1, а мне нужно 2... | |
|
|
|
|
|
|
|
для: JonNik
(13.04.2006 в 11:28)
| | а тогда запрос сам собой развалится на два.
SELECT id FROM tab WHERE id < $d ORDER BY id LIMIT 1
SELECT id FROM tab WHERE id > $d ORDER BY id LIMIT 1 | |
|
|
|
|
|
|
|
для: Trianon
(13.04.2006 в 11:21)
| | Вы правы ORDER BY id будет, просто пока отлаживаю скрипт забыл про это. | |
|
|
|
|
|
|
|
для: JonNik
(13.04.2006 в 11:15)
| | Что-то не так. Если Вас интересует предыдущий, последующий элементы, значит Вам важен порядок, в котором они идут. Следует указать ORDER BY, иначе запрос теряет всякий смысл. | |
|
|
|
|
|
|
|
для: Trianon
(13.04.2006 в 11:06)
| | SQL простой:
$res = mysql_query("SELECT id FROM table");
|
содержимое массива
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)
|
| |
|
|
|
|
|
|
|
для: JonNik
(13.04.2006 в 10:52)
| | Вы бы привели код, начиная с SELECTа, а то и вправду некрасиво выходит. | |
|
|
|
|
|
|
|
для: cheops
(13.04.2006 в 00:31)
| | С этим разобрался, но решение проблемы выглядит не очень красиво. Надо получить из массива значения, где $id= $my['id'] предыдущий элемент массива и следующий элемент массива.
<?php
while ($my = mysql_fetch_array($res))
{
$mas[] = $my['id'];
}
for ($i=0; $i<count($mas); $i++)
{
if ($mas[$i] == $id)
{
$next_id = $mas[$i+1];
$prev_id = $mas[$i-1];
break;
}
}
?>
|
| |
|
|
|
|
|
|
|
для: jonnik
(12.04.2006 в 16:02)
| | А что в массиве $row? Вообще если в индексах нет разрывов должно работать, распечатайте дамп массива
<?php
echo "<pre>";
print_r($row);
echo "</pre>";
?>
|
Передыдущие и следующие элементы в нём существуют? | |
|
|
|
|