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

Обработка функцией "mysqli_query" запросов с DESC LIMIT

23.03.2020, 22:11. Показов 668. Ответов 5

Студворк — интернет-сервис помощи студентам
Всем привет. Такой нубский вопрос. Есть таблица MySQL, в которой есть столбец с цифрами. Столбец я сортирую по убыванию и пытаюсь получить первые три строки через команду:
PHP
1
$a = mysqli_query ($link, "SELECT column1, column2, column3, FROM table_name ORDER BY column3 DESC LIMIT 3");
Но в массиве оказывается только одна, самая верхняя строка. Две другие не попадают. И неважно, пропускается результат через fetch_assoc или нет. Хотя в самой БД на чистом SQL работает нормально и извлекаются нужные три строки.
В итоге пришлось вытаскивать каждую строку по отдельности через три запроса вида:
PHP
1
2
3
$a = mysqli_query ($link, "SELECT column1, column2, column3, FROM table_name ORDER BY column3 DESC LIMIT 1, 1");
$b = mysqli_query ($link, "SELECT column1, column2, column3, FROM table_name ORDER BY column3 DESC LIMIT 2, 1");
$c = mysqli_query ($link, "SELECT column1, column2, column3, FROM table_name ORDER BY column3 DESC LIMIT 3, 1");
Поэтому вопрос. В чем причина всего этого? Это особенности работы mysqli_query и интерпретатора, или я что то не так делаю?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.03.2020, 22:11
Ответы с готовыми решениями:

Как DESC LIMIT 3 вывести в цикле нарастающей а не по убыванию
Это выводит по убыванию а мне надо нарастающей, например в базе 100 записей сейчас выводит 100,99,98 а мне надо 98,99,100. база постоянно...

Как написать на Вордпрессе такую же сортировку order by id desc LIMIT $start, $num ?
Есть пагинация страниц для сайта без Вордпресса Кусок кода пагинации--тут задается сортировка запроса order by id desc LIMIT $start,...

Запрос рабочий но mysqli_query выдает ошибку Warning: mysqli_query(): Couldn't fetch mysqli in [Мой_Файл]
Фой код генерирует запрос INSERT INTO `users`(`login`, `email`, `password`, `lname`, `fname`, `mname`, `address`) VALUES ('user',...

5
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
23.03.2020, 23:38
Цитата Сообщение от KotAzin Посмотреть сообщение
И неважно, пропускается результат через fetch_assoc или нет
PHP
1
2
3
while ($res = $a->fetch_assoc()) {
  echo $res['column1'], ' ', $res['column2'], ' ', $res['column3'], '<br>';
}
1
13 / 9 / 4
Регистрация: 30.03.2015
Сообщений: 28
23.03.2020, 23:49
Лучший ответ Сообщение было отмечено KotAzin как решение

Решение

Приведите весь код.

У меня код вида:

PHP
1
2
3
4
5
6
7
8
9
$link = mysqli_connect("localhost", "root", "", "myblog");
 
$result = mysqli_query($link, "SELECT * FROM users ORDER BY id DESC LIMIT 3");
 
$res = [];
while ($row = $result->fetch_assoc()) {
  $res[] = $row;
}
var_dump($res);
...отрабатывает штатно.
Если у вас в массиве остаётся только последняя строка - есть шанс что вы где то ошиблись с циклом и там перезапись а не добавление.
0
0 / 0 / 0
Регистрация: 04.03.2020
Сообщений: 9
29.03.2020, 20:09  [ТС]
Там нет цикла.
Весь код выглядит так:
PHP
1
2
3
4
$link = mysqli_connect ("127.0.0.1", "root", null, BASE_NAME);
$a = mysqli_query ($link, "SELECT column1, column2, column3, FROM table_name ORDER BY column3 DESC LIMIT 3");
$b = mysqli_fetch_assoc ($a);
echo ($b);
Простоя думал, что mysqli_query в этом случае вернет ряд вложенных массивов, и циклы для вывода не нужны. Хотя если даже если выводить результат через var_dump(), то на выходе будет только одна верхняя строка.
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
29.03.2020, 21:03
Цитата Сообщение от KotAzin Посмотреть сообщение
Там нет цикла.
вот поэтому и
Цитата Сообщение от KotAzin Посмотреть сообщение
Но в массиве оказывается только одна, самая верхняя строка.
0
0 / 0 / 0
Регистрация: 04.03.2020
Сообщений: 9
30.11.2022, 14:58  [ТС]
Спасибо всем за помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.11.2022, 14:58
Помогаю со студенческими работами здесь

20 запросов в секунду и "508 - Resource Limit is Reached"
Доброго дня. При простом редактировании страницы сайта на Wodpress во встроенном редакторе (либо Page Builder конструкторе), не особо...

Time limit: 1.00 s Memory limit: 512 MB A game has n rooms and m tunnels between them. Each room has a certain number of
Time limit: 1.00 s Memory limit: 512 MB A game has n rooms and m tunnels between them. Each room has a certain number of coins. What is...

Что значат Power Limit и Temperature Limit в GPU-Z?
Здравствуйте. Подскажите пожалуйста, кто разбирается в GPU-Z что это за показатели и как их расшифровать? Power Limit и Temperature Limit...

обработка запросов
ТЗ: Есть сайт страница, в которой пользователь пишет сообщение и по кнопке отправить письмо должно отправится на почту администратору ...

Обработка запросов
Суть в том, что требуется сделать сортировку. Как все это сделать на PHP я знаю, скажите как сделать скролл типо: ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru