Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 135
MySQL

Сортировка из двух таблиц MySQL в пагинации

15.08.2016, 18:19. Показов 2580. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую. Наткнулся на проблему с выводом данных в пагинации. Все данные выводятся из двух таблиц по id c первых (самых старых) записей, а нужно выводить по дате с конца, то есть с последней добавленной. Перепробовал все варианты с order by date DESC - не выходит, думаю что это из-за счетчика, так как с одной таблицей всё выводит как надо. Сами таблицы идентичны кроме количества записей и содержимого.

Прошу помощи в этом не легком деле.

Вот сам пагин:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// Переменная хранит число сообщений выводимых на станице  
$num = 12;  
// Извлекаем из URL текущую страницу  
$page = $_GET['page'];  
// Определяем общее число сообщений в базе данных  
 
$result = mysql_query("SELECT  COUNT(*) FROM
            (SELECT * from vid  WHERE jan LIKE '%2020%'
                    UNION 
                         SELECT * from vid2  WHERE jan LIKE '%1010%')  as a ");  
 
$posts = mysql_result($result, 0);  
// Находим общее число страниц  
$total = intval(($posts - 1) / $num) + 1;  
// Определяем начало сообщений для текущей страницы  
$page = intval($page);  
// Если значение $page меньше единицы или отрицательно  
// переходим на первую страницу  
// А если слишком большое, то переходим на последнюю  
IF(empty($page) OR $page < 0) $page = 1;  
  IF($page > $total) $page = $total;  
// Вычисляем начиная к какого номера  следует выводить сообщения  
$start = $page * $num - $num;  
// Выбираем $num сообщений начиная с номера $start  
 
$result = mysql_query("SELECT * FROM
            (SELECT * from vid  WHERE jan LIKE '%2020%'
                    UNION 
                         SELECT * from vid2  WHERE jan LIKE '%1010%') as a  LIMIT $start, $num");  
 
// В цикле переносим результаты запроса в массив $postrow  
while ( $postrow[] = mysql_fetch_array($result))
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.08.2016, 18:19
Ответы с готовыми решениями:

PHP+MySQL Вывод из двух таблиц при двух условиях
Есть две таблицы. users: содержит id, foto, usermessages: содержит fromid Нужно выбрать те фотки которые не равны $nofoto и к...

Пожалуйста нужно разобраться с запросом Mysql! Одним запросом из двух таблиц / MySQL
У меня на главной странице существует вот такой запрос (он ниже), который вытаскивает из таблицы &quot;glavnaya&quot; нужные строки. ...

MySQL Выборка из двух таблиц
Ну как уже повелось, учусь, ПОМОГИТЕ! Есть 2 таблицы, в них данные. table1, table2. (!) Необходимо вывести номер телефона...

12
 Аватар для Laroux
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
15.08.2016, 21:33
с JOIN-ом, мне кажется, было и логичнее, и сортировать всегда понятно как
0
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 135
15.08.2016, 23:18  [ТС]
Laroux подскажешь как перестроить на JOIN?
0
 Аватар для Laroux
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
15.08.2016, 23:19
mat777, структуру таблиц надо
0
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 135
16.08.2016, 00:27  [ТС]
Laroux, имеешь ввиду это: id,title,jan,date,opis,link,imglink и так далее? Нужна выборка из поля jan обеих таблиц - там от одного до 5 слов через запятую (синий, красный, зелёный, белый к примеру), нужна выборка по одному критерию, где есть слово '%красный%'. В одной таблице более 5 тыс. записей, в друзой 16 тыс и этот красный не везде есть. Код выше выводит по такому запросу, но начинает со старых, самых первых записей.
0
 Аватар для Laroux
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
16.08.2016, 01:40
mat777, две совершенно идентичные таблицы?
0
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 135
16.08.2016, 18:02  [ТС]
Laroux, да, все поля одинаковые, кроме содержимого.
0
 Аватар для Laroux
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
17.08.2016, 08:42
Дык тогда нужно, наверное, вот так как-нить
SQL
1
SELECT * FROM vid, vid2 WHERE ... ORDER BY ...
0
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 135
17.08.2016, 12:16  [ТС]
не работает - ...boolean given in... пишет.
0
 Аватар для Laroux
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
17.08.2016, 12:22
mat777, а запрос полностью бы посмотреть
0
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 135
17.08.2016, 12:37  [ТС]
Laroux, с одной таблицей работает, но не с двумя.

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Переменная хранит число сообщений выводимых на станице  
$num = 12;  
// Извлекаем из URL текущую страницу  
$page = $_GET['page'];  
// Определяем общее число сообщений в базе данных  
$result = mysql_query("SELECT COUNT(*) FROM vid,vid2  WHERE jan LIKE '%синий%' order by id desc");  
$posts = mysql_result($result, 0);  
// Находим общее число страниц  
$total = intval(($posts - 1) / $num) + 1;  
// Определяем начало сообщений для текущей страницы  
$page = intval($page);  
// Если значение $page меньше единицы или отрицательно  
// переходим на первую страницу  
// А если слишком большое, то переходим на последнюю  
IF(empty($page) OR $page < 0) $page = 1;  
IF($page > $total) $page = $total;  
// Вычисляем начиная к какого номера  
// следует выводить сообщения  
$start = $page * $num - $num;  
// Выбираем $num сообщений начиная с номера $start  
$result = mysql_query("SELECT * FROM  vid,vid2  WHERE jan LIKE '%синий%' order by id desc LIMIT $start, $num");  
// В цикле переносим результаты запроса в массив $postrow  
while ( $postrow[] = mysql_fetch_array($result))
0
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 135
20.08.2016, 15:05  [ТС]
Так и не получилось объединить 2 таблицы(( Неделю бьюсь с этим пагином.
Прошу, помогите найти решение.
0
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 135
22.08.2016, 14:55  [ТС]
Вопрос закрыт. Всё оказалось куда проще чем я думал)) Вот готовый вариант:

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Переменная хранит число сообщений выводимых на станице  
$num = 12;  
// Извлекаем из URL текущую страницу  
$page = $_GET['page'];  
// Определяем общее число сообщений в базе данных  
$result = mysql_query("SELECT  COUNT(*) FROM
            (SELECT * from vid WHERE jan LIKE '%синий%'
                    UNION 
             SELECT * from vid2  WHERE jan LIKE '%синий%')  as a  ");  
$posts = mysql_result($result, 0);  
// Находим общее число страниц  
$total = intval(($posts - 1) / $num) + 1;  
// Определяем начало сообщений для текущей страницы  
$page = intval($page);  
// Если значение $page меньше единицы или отрицательно  
// переходим на первую страницу  
// А если слишком большое, то переходим на последнюю  
IF(empty($page) OR $page < 0) $page = 1;  
IF($page > $total) $page = $total;  
// Вычисляем начиная к какого номера  
// следует выводить сообщения  
$start = $page * $num - $num;  
// Выбираем $num сообщений начиная с номера $start  
$result = mysql_query("SELECT * FROM
            (SELECT * from vid  WHERE jan LIKE '%синий%'
                    UNION 
             SELECT * from vid2  WHERE jan LIKE '%синий%') as a order by date desc LIMIT $start, $num  ");
// В цикле переносим результаты запроса в массив $postrow  
while ( $postrow[] = mysql_fetch_array($result))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.08.2016, 14:55
Помогаю со студенческими работами здесь

Mysql запрос из двух таблиц
Всем привет! Есть две таблицы: posts: id, date, uid, где id - айди поста, date - дата поста, uid - айди пользователя, которому этот...

Mysql выборка из двух таблиц
Приветствую форумчан. Прошу помочь с задачкой. Есть база с 2-мя таблицами. и

Удаление данных из двух таблиц MySQL
Удаляю данные из двух таблиц по where , но удаляются все данные из обоих таблиц . что не так? Искал по форуму не получается $query =...

Проверка идентичности двух таблиц MySQL
Здравствуйте, у меня есть две таблицы &quot;dbdevice&quot; и &quot;dbdeviceresult&quot;. При этом данные в таблице dbdevice могут редактироваться, удаляться и...

Сравнить поля двух MySQL таблиц
Всем привет! Нужна помощь, надо сравнить колонки &quot;code&quot; между исходной таблицей tXXXXXX и конечной таблицей eXXXXXX. в таблице...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru