Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860

Неправильно извлекается результат из таблицы БД mysql при запросе количества строк

27.03.2022, 23:21. Показов 3245. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите в чем ошибка?
Неправильно извлекается результат из таблицы БД mysql при запросе количества строк
В даном случае у меня вместо результата требуемого/фактического - "6", отображается/выводится - "1".
Причем при осуществлении данного запроса в sql phpmyadmin у меня результат выводится правильный - "6".

Вот код

PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$host = 'localhost';
$user = 'svetik000_adssv';
$pass = 'q1w2e3r4t5Y^U&I*O(P)';
$db_name = 'svetik000_adssv';
$link = mysqli_connect($host, $user, $pass, $db_name) or die("Could not connect: " . mysql_error());
 
$N_sql_1 = "SELECT COUNT(*) FROM clothes WHERE `DATETIME` <= NOW() AND `DATETIME` >= DATE_SUB(NOW(), INTERVAL 1 MONTH)";
$N_result_1 = mysqli_query($link, $N_sql_1); // выполняем запрос ($link - подключение к базе)
$N_row_1 = mysqli_num_rows($N_result_1); // количество строк в таблице
printf("Получено %d строк.\n", $N_row_1);
...
Миниатюры
Неправильно извлекается результат из таблицы БД mysql при запросе количества строк   Неправильно извлекается результат из таблицы БД mysql при запросе количества строк  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.03.2022, 23:21
Ответы с готовыми решениями:

Неправильно отображение русских букв в Python при запросе из MySQL
В базе MySQL в табл sotrudn одна запись и в поле famili значение &quot;Ивачев&quot;. В my.ini: default-character-set=utf8 И схема, и...

Отображение нулевых строк в запросе при подсчёте количества
Есть 3 таблицы: Студенты, Ст_хобби и Хобби. В первой хранится группа, ФИО, контактные данные, № зачётки, в общем данные о студентах, во...

Как сделать случайный вывод при запросе из таблицы mysql?
$result = @mysql_query(&quot;SELECT ID,automobile,email,city,telephone,othercon,marka,category,comment,foto1,date,count,today,status FROM...

21
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3952 / 2061 / 829
Регистрация: 13.03.2010
Сообщений: 6,780
27.03.2022, 23:29
Лучший ответ Сообщение было отмечено gogolik как решение

Решение

Так выводите результат запроса, а не количество строк в нем. При таком запросе вам приходит одна строка, в которой число 6. Соответственно, выводится всё корректно, как написано в коде.
1
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
27.03.2022, 23:43  [ТС]
gogolik, ну а как нужно вообще правильно нужны мне запрос сделать???
Так причем тут число 6 (если как я вас понимаю вы говорите как об элементе ячейки или строки), если у меня просто всего 6 строк в таблице БД - вот я и пытаюсь получить для начала эту информацию)))
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
28.03.2022, 00:05
Лучший ответ Сообщение было отмечено gogolik как решение

Решение

Вам все правильно говорят.
Ошибка вот здесь
PHP
1
$N_row_1 = mysqli_num_rows($N_result_1); // количество строк в таблице
Это не количество строк в таблице.
Цитата из доки
mysqli_num_rows — Получает количество строк в наборе результатов
Набор результатов - это то что вам вернула БД. А БД вернуло одну строку со значением 6.
Вам нужно всего лишь из результата mysqli_query вытащить это число 6, как и любые другие данные из БД.
PHP
1
$count = mysqli_fetch_column($N_result_1, 0);
1
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
28.03.2022, 09:09  [ТС]
tarasalk, чт-то не распознается на beget как функция БД - mysqli_fetch_column ... из-за неё вообще страницу браузер не грузит!
Миниатюры
Неправильно извлекается результат из таблицы БД mysql при запросе количества строк  
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
28.03.2022, 10:23
Ну такая функция есть - mysqli_fetch_column
Может написали неверно. Можно любой другой fetch использовать.

Цитата Сообщение от xamelione25 Посмотреть сообщение
из-за неё вообще страницу браузер не грузит!
Это малополезная инфа, надо конкретный текст ошибки приводить, от БД или от PHP.

p.s. А еще у вас ошибка на 6 строчке. Надо mysqli_error, а не mysql_error.
0
1306 / 998 / 232
Регистрация: 01.10.2018
Сообщений: 3,882
28.03.2022, 10:30
fetch_column - это новая функция (метод). Можно вполне обойтись без нее.
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
28.03.2022, 10:32  [ТС]
tarasalk,
Цитата Сообщение от tarasalk Посмотреть сообщение
p.s. А еще у вас ошибка на 6 строчке. Надо mysqli_error, а не mysql_error.
cпс
***
Цитата Сообщение от tarasalk Посмотреть сообщение
Можно любой другой fetch использовать.
а какие еще варианты?
***
Цитата Сообщение от tarasalk Посмотреть сообщение
Ну такая функция есть
я её сам находил уже кучу раз ... просто система почему-то её не воспринимает!
***
Цитата Сообщение от tarasalk Посмотреть сообщение
Это малополезная инфа, надо конкретный текст ошибки приводить, от БД или от PHP.
ну в phpmyadmin это как-то возможно определить (sql запросом)?
у меня в браузере только это (сркин).
Миниатюры
Неправильно извлекается результат из таблицы БД mysql при запросе количества строк  
0
1306 / 998 / 232
Регистрация: 01.10.2018
Сообщений: 3,882
28.03.2022, 10:50
Лучший ответ Сообщение было отмечено xamelione25 как решение

Решение

Цитата Сообщение от xamelione25 Посмотреть сообщение
а какие еще варианты?
Т.к. имя не требуется, оптимально использовать fetch_row.

Добавлено через 2 минуты
Потом можно сделать shift или pop из массива, либо использовать конструкцию list. Это помимо очевидного варианта с обычным присваиванием.

Добавлено через 10 минут
Цитата Сообщение от xamelione25 Посмотреть сообщение
у меня в браузере только это (сркин).
Серверная ошибка 500. Учитесь обрабатывать ошибки, а не пускать все на самотек.
1
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
28.03.2022, 12:22  [ТС]
estic, tarasalk, А помогло это)))
PHP
1
2
$row = $N_result_1->fetch_row();;
printf("Получено %d строк.\n", $row[0]);
Добавлено через 7 минут
tarasalk, estic, вопрос может быть частично не по теме (больше к mysql относится). Подскажите, а как мне сделать то что я описывал в 7 посте этой темы Запрос на извлечение данных из mysql за последний месяц или выбранный срок касаемо добавления недостающих позиций к имеющемуся перечню???

PHP
1
2
3
4
5
6
7
8
9
10
11
<?php
$host = 'localhost';
$user = 'svetik000_adssv';
$pass = 'q1w2e3r4t5Y^U&I*O(P)';
$db_name = 'svetik000_adssv';
$link = mysqli_connect($host, $user, $pass, $db_name) or die("Could not connect: " . mysqli_error());
 
$N_sql_1 = "SELECT COUNT(*) FROM clothes WHERE `DATETIME` <= NOW() AND `DATETIME` >= DATE_SUB(NOW(), INTERVAL 1 MONTH)";
$N_result_1 = mysqli_query($link, $N_sql_1); // выполняем запрос ($link - подключение к базе)
$row = $N_result_1->fetch_row();;
printf("Получено %d строк.\n", $row[0]);
0
1306 / 998 / 232
Регистрация: 01.10.2018
Сообщений: 3,882
28.03.2022, 12:23
Цитата Сообщение от xamelione25 Посмотреть сообщение
А помогло это)))
А я не про это писал?

Присваивание и т.п. нужно, чтобы получить значение в обычной переменной, например $N_row_1
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
28.03.2022, 12:26  [ТС]
estic,
Цитата Сообщение от estic Посмотреть сообщение
А я не про это писал?
Присваивание и т.п. нужно, чтобы получить значение в обычной переменной, например $N_row_1
А я не в том застопорился в данном случае ... у меня ступор не с переменной был, а с функцией mysql
PHP
1
$N_result_1->fetch_row()
я сначала не понял то что нужно было это сделать вот так
PHP
1
 *** = *** -> ***
0
1306 / 998 / 232
Регистрация: 01.10.2018
Сообщений: 3,882
28.03.2022, 12:29
Цитата Сообщение от xamelione25 Посмотреть сообщение
я сначала не понял то что нужно было это сделать вот так
Можно делать по-разному, и с использованием ООП-синтаксиса, и без. А вот что точно не нужно делать, так это смешивать разные подходы в одном коде:
Цитата Сообщение от xamelione25 Посмотреть сообщение
$N_result_1 = mysqli_query($link, $N_sql_1); // выполняем запрос ($link - подключение к базе)
$row = $N_result_1->fetch_row();
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
28.03.2022, 12:32  [ТС]
estic, а почему??? В чем недостаток использования разных форм запросов???
0
1306 / 998 / 232
Регистрация: 01.10.2018
Сообщений: 3,882
28.03.2022, 12:35
К предыдущему сообщению. Есть небольшое исключение для mysqli_connect, т.к. это не полный аналог операции new.

Цитата Сообщение от xamelione25 Посмотреть сообщение
В чем недостаток использования разных форм запросов???
Причем тут "разные формы запросов"? Речь о том, чтобы не смешивать ООП-синтаксис с вызовами функций mysqli_*.
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
28.03.2022, 12:37  [ТС]
estic, ну я и говорю об этом ... В чем вызов данных функций несовместим с ооп
0
1306 / 998 / 232
Регистрация: 01.10.2018
Сообщений: 3,882
28.03.2022, 12:41
Речь не о совместимости, а о читаемости кода.

Сам запрос можно делать при помощи метода query:
PHP
1
$result = $link->query($sql);
0
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
30.03.2022, 18:29  [ТС]
estic, gogolik, Объясните мне пожалуйста почему условие неправильно срабатывает (см.скрин)???

PHP
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
33
$link = mysqli_connect($host, $user, $pass, $db_name) or die("Could not connect: " . mysqli_error());
 
//наиболее продаваемые товары
$sql_2 = "SELECT COUNT(*) FROM clothes WHERE `DATETIME` <= NOW() AND `DATETIME` >= DATE_SUB(NOW(), INTERVAL 1 MONTH)";
$result_2 = mysqli_query($link, $sql_2);
$row_2 = mysqli_fetch_array($result_2);
... 
...
...
<!-- 2 letest product section -->
    <section class="top-letest-product-section">
        <div class="container">
            <div class="section-title">
                <h2>Наиболее продаваемые товары</h2>
            </div>
            <div class="product-slider owl-carousel">';
echo $content;
            if ($row_2 > 9)
            {
                printf("Получено row_2 %d строк.\n", $row_2[0]);
 
            }
            else
            {
 
            }
 
 
            $content = '
            </div>
        </div>
    </section>
    <!-- 2 letest product section end -->
Миниатюры
Неправильно извлекается результат из таблицы БД mysql при запросе количества строк  
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
30.03.2022, 19:29
Можете потому что в условии у вас $row_2, а в printf $row_2[0]?
1
 Аватар для xamelione25
-4 / 5 / 2
Регистрация: 04.02.2013
Сообщений: 1,860
30.03.2022, 20:12  [ТС]
tarasalk, пытался - безрезультатно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.03.2022, 20:12
Помогаю со студенческими работами здесь

Как в MySQL запросе сравнить значение id из таблицы A со значением a_id из таблицы B из последней добавленной записи
Очень тяжело объяснить, вот пример (работаю в phpmyadmin): У меня есть 2 таблицы: articles categories У articles есть...

SQL неправильно предполагает количество строк в запросе
У меня есть две таблицы, одна с основными данными, а другая с кэшированными результатами. Мне нужно вычислять суммы по диапазонам дат и...

В запросе неправильно считается сумма строк из других запросов
В базе данных в четыре запроса выбираю стоимость каналов для каждого пакета каналов (для примера сделал пакет Стандартный). Далее делаю...

Объединить результат нескольких строк в запросе Linq SQL
У меня есть 2 связанные таблицы. Одна - с заявками и двумя колонками: RequestId и PersonId. Вторая - с человеками и четырьмя колонками:...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru