powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как организовать результат выборки данных
10 сообщений из 10, страница 1 из 1
Как организовать результат выборки данных
    #37739362
hemoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделал под каждой статьей ссылки на предыдущую и на следующую, статьи проходят модерацию.
Есть кусок кода в модели

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
function get_left($quoted_id)
{
$query2 = $this->db->query('SELECT id FROM `xdy_show`  WHERE (
`id` = (SELECT MAX(`id`) FROM `xdy_show` WHERE `id` <'.$quoted_id.' AND status=1 )
OR `id` = (SELECT MIN(`id`) FROM `xdy_show` WHERE `id` >'.$quoted_id.' AND status=1 )
) order by `id` asc');
return $query2;
}



и в контроллере

Код: php
1.
2.
3.
4.
5.
6.
7.
		foreach ($data2->result() as $row) 
		{
			 $uk[]=$row->id;
			
		}
		if ($uk[0]) {$this->tp->assign('show_prev',$uk[0]);}
		if ($uk[1]) {$this->tp->assign('show_next',$uk[1]);} // как улучшить этот кусок кода?



вьюшка

Код: html
1.
2.
<a href="{show_prev}"><<</a>
<a href="{show_next}">>></a>



Проблема в том, что когда выводятся записи, например 1 или последняя запись, то не правильно расставляются предыдущий и следующий элементы. как сделать, чтобы ссылка исчезала на пред или след элемент, если его нет.
...
Рейтинг: 0 / 0
Как организовать результат выборки данных
    #37739874
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hemoy,

Код: sql
1.
2.
3.
SELECT 'right' as place, MAX(`id`) as id FROM `xdy_show`  WHERE `id` < :id AND status=1  LIMIT 1
UNION ALL 
SELECT 'left' as place, MIN(`id`) as id FROM `xdy_show` WHERE `id` > :id AND status=1 LIMIT 1 


Выполнять этот запрос, и уже судить по place слева или справа.... но имхо запрос корявый какойто) Поищите как красиво можно соседние элементы найти
...
Рейтинг: 0 / 0
Как организовать результат выборки данных
    #37739913
hemoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
он находит элементы, выводится массивом, 1 элемент минимальный id, 2 максимальный id, просто есть проблема как их вытаскивать если страница первая или последняя, так как один из элементов пропадает.
...
Рейтинг: 0 / 0
Как организовать результат выборки данных
    #37740491
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hemoyон находит элементы, выводится массивом, 1 элемент минимальный id, 2 максимальный id, просто есть проблема как их вытаскивать если страница первая или последняя, так как один из элементов пропадает.
Вытащите клюв из песка и прочтите что вам предлагают.
...
Рейтинг: 0 / 0
Как организовать результат выборки данных
    #37740952
hemoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ренатhemoy,

Код: sql
1.
2.
3.
SELECT 'right' as place, MAX(`id`) as id FROM `xdy_show`  WHERE `id` < :id AND status=1  LIMIT 1
UNION ALL 
SELECT 'left' as place, MIN(`id`) as id FROM `xdy_show` WHERE `id` > :id AND status=1 LIMIT 1 


Выполнять этот запрос, и уже судить по place слева или справа.... но имхо запрос корявый какойто) Поищите как красиво можно соседние элементы найти

не могу понять как получить результат запроса , какие индексы в массиве ставить
...
Рейтинг: 0 / 0
Как организовать результат выборки данных
    #37740954
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну если по запросу понять не можете, print_r в помощь
...
Рейтинг: 0 / 0
Как организовать результат выборки данных
    #37740956
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
м?
Код: sql
1.
SELECT MAX(`id`) right, MIN(`id`) left FROM `xdy_show`  WHERE `id` < :id AND status=1  LIMIT 1
...
Рейтинг: 0 / 0
Как организовать результат выборки данных
    #37740957
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
SELECT MAX(`id`) `right`, MIN(`id`) `left` FROM `xdy_show`  WHERE `id` < :id AND status=1  
...
Рейтинг: 0 / 0
Как организовать результат выборки данных
    #37741013
hemoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

делал,

CI_DB_mysql_result Object ( [conn_id] => Resource id #42 [result_id] => Resource id #47 [result_array] => Array ( [0] => Array ( [place] => right [id] => ) ) [result_object] => Array ( ) [custom_result_object] => Array ( ) [current_row] => 0 [num_rows] => 1 [row_data] => ) 1
...
Рейтинг: 0 / 0
Как организовать результат выборки данных
    #37742083
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

не пркоатит =)
А с условием `id` < :id что делать?)
Ох ну емае, вот запрос:
Код: php
1.
2.
3.
4.
5.
6.
$res = mysql_query("SELECT 'right' as place, MAX(`id`) as id FROM `xdy_show`  WHERE `id` < :id AND status=1  LIMIT 1
UNION ALL 
SELECT 'left' as place, MIN(`id`) as id FROM `xdy_show` WHERE `id` > :id AND status=1 LIMIT 1 ");
$items = array();
while($item = mysql_fetch_arary($res)) $items[] = $item;
var_dump($items);


Либо хотябы в phpmyadmin могли бы выполнить, или в консоли
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как организовать результат выборки данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]