Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: предыдущий элемент массива

Сообщения:  [1-10]   [11-11] 

 
 автор: JonNik   (13.04.2006 в 11:55)   письмо автору
 
   для: Trianon   (13.04.2006 в 11:47)
 

вариант... спасибо

   
 
 автор: 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

   
 
 автор: JonNik   (13.04.2006 в 11:45)   письмо автору
 
   для: Trianon   (13.04.2006 в 11:37)
 

не правильно, если в таблице например есть id = 1, 2, 3, 4, 5, то первый Ваш запрос выведет, при значении $d=3 выведет 1, а мне нужно 2...

   
 
 автор: Trianon   (13.04.2006 в 11:37)   письмо автору
 
   для: 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

   
 
 автор: JonNik   (13.04.2006 в 11:28)   письмо автору
 
   для: Trianon   (13.04.2006 в 11:21)
 

Вы правы ORDER BY id будет, просто пока отлаживаю скрипт забыл про это.

   
 
 автор: Trianon   (13.04.2006 в 11:21)   письмо автору
 
   для: JonNik   (13.04.2006 в 11:15)
 

Что-то не так. Если Вас интересует предыдущий, последующий элементы, значит Вам важен порядок, в котором они идут. Следует указать ORDER BY, иначе запрос теряет всякий смысл.

   
 
 автор: JonNik   (13.04.2006 в 11:15)   письмо автору
 
   для: 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
)

   
 
 автор: Trianon   (13.04.2006 в 11:06)   письмо автору
 
   для: JonNik   (13.04.2006 в 10:52)
 

Вы бы привели код, начиная с SELECTа, а то и вправду некрасиво выходит.

   
 
 автор: JonNik   (13.04.2006 в 10:52)   письмо автору
 
   для: 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;
      }
    }
?>

   
 
 автор: cheops   (13.04.2006 в 00:31)   письмо автору
 
   для: jonnik   (12.04.2006 в 16:02)
 

А что в массиве $row? Вообще если в индексах нет разрывов должно работать, распечатайте дамп массива
<?php
  
echo "<pre>";
  
print_r($row);
  echo 
"</pre>";
?>

Передыдущие и следующие элементы в нём существуют?

   

Сообщения:  [1-10]   [11-11] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования