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

Форум PHP

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

 

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

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

тема: Как организовать переключение вперед назад по id и cat ???

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

 
 автор: SHAman   (08.02.2011 в 17:46)   письмо автору
 
   для: Trianon   (08.02.2011 в 15:37)
 

Верные замечания, да.

  Ответить  
 
 автор: cerf000   (08.02.2011 в 17:13)   письмо автору
 
   для: cheops   (08.02.2011 в 16:45)
 

$next_id дает тот же результат что и $id + 1
переходит к следующему id

  Ответить  
 
 автор: cerf000   (08.02.2011 в 17:01)   письмо автору
 
   для: cheops   (08.02.2011 в 16:56)
 

Вижу и пытаюсь осмыслить данный скрипт сгенерирующий две ссылки вида go_to_prev.php?id=nnn и go_to_next.php?id=nnn

Но боюсь с моими нынешними знаниями не осилю данную задачу. Вот если бы где то был похожий пример что бы разобрать его по косточкам... )

  Ответить  
 
 автор: cheops   (08.02.2011 в 16:56)   письмо автору
 
   для: cerf000   (08.02.2011 в 16:53)
 

Одну из таких идей внизу подсказал Trianon.

  Ответить  
 
 автор: cerf000   (08.02.2011 в 16:53)   письмо автору
 
   для: cheops   (08.02.2011 в 16:45)
 

Разве можно назвать данную задачу постраничной навигацией? Просто из всех примеров что были в книжках [url]www.softtime.ru я[/url] постраничная навигация показалась мне легче всего для переделки.
Если есть другие решения реализации "вперед" "назад" по id и cat, подскажите пожалуйста направление в котором следует думать!

  Ответить  
 
 автор: cheops   (08.02.2011 в 16:45)   письмо автору
 
   для: cerf000   (08.02.2011 в 16:35)
 

Извлечь значение из SQL-запроса, который привел Trianon можно следующим образом
<?php
  
...
  
$query "SELECT MIN(`id`)  FROM t2 WHERE `id`>$id";
  
$tbl mysql_query($query);
  if(!
$tbl) exit("Ошибка - ".mysql_error());
  
$next_id mysql_result($tbl0);
?>

PS Готовых решений мало, так как выбранный вами путь редко используется, для постраничной навигации нужно два дополнительных SQL-запроса, проще ориентироваться на сурогатные страницы, которые можно вычислить без лишних запросов.

  Ответить  
 
 автор: Косорылый   (08.02.2011 в 16:40)   письмо автору
 
   для: Красная_шляпа   (08.02.2011 в 15:01)
 

С лимитом
id select_type     table     type     possible_keys     key     key_len     ref  rows     Extra
1     SIMPLE     attributes     range     PRIMARY     PRIMARY     4     NULL      123     Using where


С MIN( `id` )
id select_type     table     type     possible_keys     key     key_len     ref     rows     Extra
1     SIMPLE     NULL     NULL     NULL     NULL           NULL          NULL      NULL  Select tables optimized away

  Ответить  
 
 автор: cerf000   (08.02.2011 в 16:35)   письмо автору
 
   для: Trianon   (08.02.2011 в 15:37)
 

Запрос более менее понятен а как вывести ссылку на следующий id ???
И не ужели нет готового решения для такой задачи ведь не я один столкнулся с этим. Или хотя бы похожего решения, похожего скрипта?

  Ответить  
 
 автор: cerf000   (08.02.2011 в 15:58)   письмо автору
 
   для: cheops   (08.02.2011 в 15:04)
 

уже пробую

  Ответить  
 
 автор: Trianon   (08.02.2011 в 15:37)   письмо автору
 
   для: SHAman   (08.02.2011 в 15:00)
 

оба запроса недетерминированы, поскольку в общем случае строки в таблице могут оказаться
размещены не согласно порядку первичных ключей. (Очевидно из-за ранее удалявшихся записей.)
Можно было бы добавить ORDER BY id (DESC|ASC) - тогда запрос вернул бы нужное с гарантией.

Но более корректно вытаскивать только требуемый id, не применяя LIMIT

SELECT MIN(`id`)  FROM t2 WHERE `id`>$id 

и аналогично MAX

  Ответить  

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

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

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