Новости Joomla

20 лет Joomla: Ринат Кажетов.В 2025 году Joomla исполнилось 20 лет

20 лет Joomla: Ринат Кажетов.В 2025 году Joomla исполнилось 20 лет

👩‍💻 20 лет Joomla: Ринат Кажетов.В 2025 году Joomla исполнилось 20 лет. Вокруг неё сложилось большое интернациональное русскоязычное сообщество. На сайте нашего сообщества и на Хабре к юбилею были собраны интервью с его видными представителями. Сегодня мы читаем интервью с Ринатом Кажетовым (@rkazhet). Ринат - один из администраторов чата русскоязычного Joomla-сообщества, из Казахстана. Это человек, который всегда знает или найдёт нужную ссылку, пристально следит за новостями в мире Joomla, многое узнаёт первым и просто очень отзывчивый человек. Интервью с Ринатом взял Евгений Сивоконь.Читать интервью@joomlafeed#joomla #community

0 Пользователей и 1 Гость просматривают эту тему.
  • 19 Ответов
  • 2939 Просмотров
*

greynemo

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Сортировка в запросе mysql
« : 28.08.2011, 01:39:57 »
Здравствуйте! Я пытаюсь переделать друг плагин для совместимости с другим модулем Joomla. Но возникла проблема с mysql-запросом. Сначала выполняется запрос к одной таблице плагином (приобретаются id материала), затем по результатам запроса выполняется второй. Второй запрос выполняю так WHERE material IN (id1, id 2, ....). Проблема в том, что полученные данные со второго запроса сразу сортируются методом ASC, а нужно в таком же порядке, как в условии ....
Нужна помощь! Надеюсь на ответ ...
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
Re: Сортировка в запросе mysql
« Ответ #1 : 28.08.2011, 08:55:49 »
Не совсем понятно. Вы потом куда эти данные выводите? И каким способом? Дайте строку вывода инфы.

ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

greynemo

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Сортировка в запросе mysql
« Ответ #2 : 28.08.2011, 17:41:30 »
Первый запрос:
Код
		$db->setQuery('SELECT content_id AS contid, extra_id AS eid, lastip AS lastip, rating_sum AS sum, rating_count AS count FROM #__content_extravote' .
' ORDER BY sum DESC LIMIT '.$max_items.'');
  $vote = $db->loadObjectList();
Получаю content_id (в таком порядке 149, 77, 65, 41), обрабатываю его и записываю в переменную $where, типа '149', '77', '65', '41'
Код
		$query = 'SELECT p.product_id AS pid, p.product_sku AS psku, p.product_thumb_image AS pimage, p.product_full_image AS fullimage, p.product_name AS pname, ' .
' cx.category_id AS catid, '.$ceil_price.', p.product_s_desc AS pintro, pp.product_currency AS currency, p.product_discount_id AS discount'.
' FROM #__vm_product p ' .
' WHERE id IN (' . $whereid . ') LIMIT 12';

$db->setQuery($query);
$rows = $db->loadObjectList();
Вывод данных:
Код
Array (
    [0] => stdClass Object (
            [pname] => IMG_4916.JPG
            [pid] => 41
  ) [1] => stdClass Object (
            [pname] => IMG_4689.JPG
            [pid] => 65
  ) [2] => stdClass Object (
            [pname] => IMG_4834.JPG
            [pid] => 77
  ) [3] => stdClass Object (
            [pname] => IMG_2455.JPG
            [pid] => 149
   )
)
Данные выводятся посортированы ASC, а нужно так как указано в $where....
*

greynemo

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Сортировка в запросе mysql
« Ответ #4 : 28.08.2011, 18:14:45 »
Не совсем понял. У $whereid я просто указываю, какие материалы нужно извлечь из базы данных. А сортировку я нигде не указываю.
*

greynemo

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Сортировка в запросе mysql
« Ответ #5 : 28.08.2011, 18:19:43 »
Не совсем понял. У $whereid я просто указываю, какие материалы нужно извлечь из базы данных. А сортировку я нигде не указываю.
А как упорядочивать последний массив?
*

beagler

  • Живу я здесь
  • 3276
  • 392 / 4
  • https://alorisman.ru/
*

greynemo

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Сортировка в запросе mysql
« Ответ #7 : 28.08.2011, 19:08:35 »
Да, именно так. Нашел на одном сайте следующий способ:
Код
ORDER BY 'material_id'='$id_1' ASC, 'material_id'='$id_2' ASC "
Но он ничего не дает. Знаете способ как можно сделать?
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Re: Сортировка в запросе mysql
« Ответ #9 : 28.08.2011, 19:33:36 »
нужно упорядочивать не $whereid, а последний массив

http://www.php.net/manual/en/function.array-multisort.php
*

greynemo

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Сортировка в запросе mysql
« Ответ #10 : 28.08.2011, 20:50:11 »
ORDER BY `поле` IN (тут или список ID через запятую ищи ещё подзапрос)
Пробовал ничего не дает.
http://www.php.net/manual/en/function.array-multisort.php
If you want to sort a multidomensional array by key name you cannot use array_multisort
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
Re: Сортировка в запросе mysql
« Ответ #11 : 28.08.2011, 20:54:11 »
Пробовал ничего не дает.
значит плохо пробовал, я использовал один раз это - всё работало.
*

greynemo

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Сортировка в запросе mysql
« Ответ #12 : 28.08.2011, 21:00:22 »
значит плохо пробовал, я использовал один раз это - всё работало.
Можете показать Ваш запрос? Может я неправильно пишу:
Код
ORDER BY p_id IN ("149", "77", "65", "41", "150")
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
Re: Сортировка в запросе mysql
« Ответ #14 : 28.08.2011, 21:05:31 »
в итоге должно возвращать элементы по заданному порядку:
149
77
65
41
150
<далее всё что не перечислено>
*

greynemo

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Сортировка в запросе mysql
« Ответ #15 : 28.08.2011, 21:23:53 »
Ничего не меняется. (41, 65, 77, 149, 150)
Вот полностью запрос
Код
SELECT p.product_id AS pid, p.product_sku AS psku, p.product_thumb_image AS pimage, p.product_full_image AS fullimage, p.product_name AS pname,  cx.category_id AS catid, floor(pp.product_price) AS pprice, p.product_s_desc AS pintro, pp.product_currency AS currency, p.product_discount_id AS discount
FROM #__vm_product p
RIGHT JOIN #__vm_product_category_xref AS cx ON p.product_id = cx.product_id
RIGHT JOIN #__vm_product_price as pp ON pp.product_id = p.product_id
WHERE p.product_id IN ('149', '77', '65', '41', '150')
ORDER BY p.product_id IN (149, 77, 65, 41, 150) LIMIT 12
он с этого модуля http://joomlaforum.ru/index.php/topic,71309.0.html
« Последнее редактирование: 28.08.2011, 21:30:51 от greynemo »
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
*

greynemo

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Сортировка в запросе mysql
« Ответ #18 : 28.08.2011, 22:43:52 »
Большое спасибо. Теперь действительно работает.
+1
*

greynemo

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Сортировка в запросе mysql
« Ответ #19 : 28.08.2011, 22:51:40 »
Теперь все выводится как надо.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

У меня возникает ошибка Database Error: Unable to connect to the database:Could not connect to MySQL

Автор alan303

Ответов: 3
Просмотров: 2204
Последний ответ 08.06.2016, 14:15:40
от SeBun
Посоветуйте как уменшить нагрузку на MySQL

Автор eddiep

Ответов: 6
Просмотров: 2425
Последний ответ 28.04.2015, 12:30:34
от eddiep
Сайт создает повышенную нагрузку на CPU. Файл mysql-slow-queries.log

Автор richman

Ответов: 3
Просмотров: 2670
Последний ответ 09.11.2013, 13:44:30
от richman
Ошибка Database Error: Unable to connect to the database:Could not connect to MySQL

Автор daemon92

Ответов: 0
Просмотров: 1997
Последний ответ 13.07.2013, 16:35:08
от daemon92
Нагрузка на MySQL

Автор madmakstver

Ответов: 1
Просмотров: 2326
Последний ответ 19.03.2013, 23:50:08
от myxaxa41