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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: поэлементная выборка значений из базы
 
 автор: seriy2   (17.05.2007 в 00:16)   письмо автору
 
 

есть запрос:
$query="select var1, var2 from table where param=5";
на текущей странице отображается первая строка запроса.
как сделать навигацию предыдущий/следующий элемент

   
 
 автор: cheops   (17.05.2007 в 00:37)   письмо автору
 
   для: seriy2   (17.05.2007 в 00:16)
 

А чем предыдущий и следущий элемент отличается? значением param?

   
 
 автор: seriy2   (17.05.2007 в 14:11)   письмо автору
 
   для: cheops   (17.05.2007 в 00:37)
 

есть запрос:
$query="select var1, var2 from table where param=5";
на текущей странице отображается первая строка запроса.
как сделать навигацию предыдущий/следующий элемент

суть вот в чем:
есть таблица, в которой сохраняются (допустим) фото (var1) и его аннотация (var2). каждое принадлежит к определенному типу. тип определяется значением param. т.е. если param=1, это рубрика 1, если param=2, это рубрика 2 и т.д.
мы выбираем все фото, принадлажещие рубрике 5 (param=5).
нужно сделать навигацию постраничного отображения каджого фото из этой рубрики.
а как, я не пойму

   
 
 автор: Trianon   (17.05.2007 в 14:23)   письмо автору
 
   для: seriy2   (17.05.2007 в 14:11)
 

Это надо понимать так, что с навигацией по всему содержимому без деления на рубрики у Вас проблем нет?

   
 
 автор: seriy2   (17.05.2007 в 17:54)   письмо автору
 
   для: Trianon   (17.05.2007 в 14:23)
 

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

   
 
 автор: Trianon   (17.05.2007 в 17:56)   письмо автору
 
   для: seriy2   (17.05.2007 в 17:54)
 

при формировании ссылок навигации нужно добавлять параметры фильтрации (в Вашем случае, номер рубрики)

   
 
 автор: ZAHTET   (17.05.2007 в 18:15)   письмо автору
 
   для: Trianon   (17.05.2007 в 17:56)
 

Может выполнять инкремент для значений var1 и var2?Или нет?

   
 
 автор: seriy2   (17.05.2007 в 23:39)   письмо автору
 
   для: Trianon   (17.05.2007 в 17:56)
 

а как понять, какой следующий?
допустим, var1 = рубрика1 & id=1; var2 = рубрика2 & id=2; var3 = рубрика1 & id=3;
var1 - текущий элемент. => var3 - следующий (одна рубрика)
ссылка - str.php?id=$table[id]
как определить $table[id] (в общем виде)

   
 
 автор: Trianon   (18.05.2007 в 09:52)   письмо автору
 
   для: seriy2   (17.05.2007 в 23:39)
 

Так. Показывайте скрипт, который у Вас выводит содержимое безо всякой навигации. А то так не понять о чем Вы.

   
 
 автор: seriy2   (18.05.2007 в 12:18)   письмо автору
 
   для: Trianon   (18.05.2007 в 09:52)
 

@$id=$_GET['id']; // $id определяет рубрику, к которой относится фотка
$query="select * from foto where id_rubr=$id";
$result=mysql_query($query);
if (!$result) echo "no foto";
$num=mysql_num_rows($result);
if ($num>0) {
$foto=mysql_fetch_array($result);
echo "td class=body>$foto[foto] <br> <br>$foto[komment]
<br><br> <a href=foto.php?id=$id_pred class=bot>предыдущее фото</a> |
<a href=foto.php?id=$id_posl class=bot>следующее фото</a></td> ";
} ?>

нужно задать $id_pred и $id_posl

   
 
 автор: Trianon   (18.05.2007 в 13:04)   письмо автору
 
   для: seriy2   (18.05.2007 в 12:18)
 

Ок.
Теперь показывайте пример где есть навигация, но отсутствует деление на рубрики.
Заодно неплохо было бы привести дамп таблицы. Хотя бы структуру и фрагмент данных.

   
 
 автор: seriy2   (18.05.2007 в 17:39)   письмо автору
 
   для: Trianon   (18.05.2007 в 13:04)
 

до меня дошло!!!!!
спасибо огромное за помощь)))

   
 
 автор: MXSky   (28.05.2007 в 12:45)   письмо автору
 
   для: seriy2   (17.05.2007 в 00:16)
 

У меня сходная проблема! Help!

Как в MySQL осуществлять переход на следующую/предыдущую запись по полю ID. Буквально на ближайшую запись, в том или ином направлении. В Oracle, помнится, такое можно делать при помощи курсоров, а здесь как?

В отличии от случая который описывает автор темы, записи никак не группируются. Если делать через mysql_fetch_row(), то получается, что нужно загружать всю таблицу в память - не экономично.

И как быть?

Заранее благодарю.

   
 
 автор: Trianon   (28.05.2007 в 13:58)   письмо автору
 
   для: MXSky   (28.05.2007 в 12:45)
 

В MySql это делается с помощью конструкции LIMIT startrow, numrows в конце SELECT-запроса.
Следует помнить, что без ORDER BY эта конструкция смысла не несет.
Переписывайте логику приложения.

   
 
 автор: MXSky   (28.05.2007 в 14:13)   письмо автору
 
   для: Trianon   (28.05.2007 в 13:58)
 

Trianon, спасибо за ответ!

Надо почитать про этот LIMIT. :)

   
 
 автор: MXSky   (28.05.2007 в 14:08)   письмо автору
 
   для: MXSky   (28.05.2007 в 12:45)
 

Отвечаю сам себе же!

Думаю подойдет вот такое решение:

SELECT MIN(ID) FROM DB WHERE ID>$CurrentID
- следующая за текущей записью по порядку возрастания ID

SELECT MAX(ID) FROM DB WHERE ID<$CurrentID
- предыдущая перед текущей записью.

Сам додумался! Гы!
Это же ТАК ПРОСТО!

   
Rambler's Top100
вверх

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