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

Не могу получить количество найденых строк в таблице

30.08.2018, 16:21. Показов 625. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, делаю поиск и столкнулся с такой проблемой, что не могу получить количество найденных строк в таблице, пытаюсь сделать это так:


MySQL
1
2
3
4
5
6
SELECT COUNT (*) 
FROM catalog 
WHERE
item_name LIKE '%$search_query%' 
or 
id  LIKE '%$search_query%'"
А вывожу вот так:

MySQL
1
2
3
4
5
6
7
8
SELECT catalog.*, sub_category.sub_category_name, category.category_name, category.id AS category_id, sub_category.id AS sc_id
FROM catalog 
JOIN sub_category
ON catalog.sub_category=sub_category.id 
JOIN category
ON sub_category.parent_id=category.id
WHERE catalog.item_name LIKE '%$search_query%' or catalog.id LIKE '%$search_query%'
ORDER BY catalog.id

Пытался посмотреть что показывает $count, вот так:
PHP
1
echo $count[0];
В итоге вообще ничего не показывает, что не так понять не могу. Подскажите пожалуйста!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.08.2018, 16:21
Ответы с готовыми решениями:

Не могу посчитать количество строк в таблице
Имеется задание: "Наименование организации, количество сотрудников в возрасте 25 лет. Код: Select firm.name, worker.bdate From...

Как получить количество строк в данной таблице?
сбился с ног, не могу найти какая команда возвращает кол-во строк в данной таблице... пжалст...

SQLite: как выполнить команду, чтобы получить в int переменную количество строк в таблице
конкретный вопрос вот в чем command.CommandText = @"SELECT COUNT(clientID) FROM clients"; как выполнить команду, чтобы получить в int...

12
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
30.08.2018, 16:36
TheArs,
Какой библиотекой пользуетесь?
Если pdo, то так:

PHP
1
2
$rowQuantity = $pdo->query("SELECT COUNT(*) FROM `catalog` WHERE `item_name` LIKE '%$search_query%' or `id` LIKE '%$search_query%' ")->fetchColumn();
echo $curatorQuantity;
Возможно оператор or нужно на OR заменить.
0
1 / 1 / 0
Регистрация: 10.08.2018
Сообщений: 59
30.08.2018, 16:39  [ТС]
Библиотек никаких нет ( на голяк пишу

PHP
1
$count = mysql_fetch_row(mysql_query ("SELECT COUNT (*) FROM catalog WHERE item_name LIKE '%$search_query%' OR id  LIKE '%$search_query%'"));
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
30.08.2018, 16:42
Цитата Сообщение от TheArs Посмотреть сообщение
Библиотек никаких нет ( на голяк пишу
как это? Как же Вы собрались sql запрос отдавать? Или у Вас не php серверный язык?
0
1 / 1 / 0
Регистрация: 10.08.2018
Сообщений: 59
30.08.2018, 16:44  [ТС]
Ну видимо я в этом мире чего-то не понимаю

Серверный язык - php, да.

А вот про библиотеки - сложный вопрос.

Я вообще это делаю чтобы вывести текст "По Вашему запросу ничего не найдено", если никаких данных не нашлось и всё. Потому что всё остальное работает, но когда ничего не находит, просто пустое место получается.

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
while ($data = mysql_fetch_array($query)){
                                                        
                                        $id = $data['id'];
                                        $image = $data['image'];
                                        $sub_category_name = $data['sub_category_name'];
                                        $item_name = $data['item_name'];
                                        $price = $data['price'];
                                        $price_per = $data['price_per'];
                                        $category_name = $data['category_name'];
                                        $category_id = $data['category_id'];
                                        $sub_category_id = $data['sc_id'];
                                        $category_name_translit = mb_strtolower  (strtr($category_name, $translit));
                                        $sub_category_translit = mb_strtolower  (strtr($sub_category_name, $translit));
                                        $item_name_translit = mb_strtolower  (strtr($item_name, $translit));
                                                    
                                        echo "
                                        <div class='col-md-4'>
                                            <article class='product'>
                                                <a href='/catalog/$category_name_translit/$category_id/$sub_category_translit/$sub_category_id/$item_name_translit/$id'>
                                                    <div class='image' style='height:250px;'><img src='$image' style='padding:20px;' alt=''></div>
                                                    <h2><a href='#'>$item_name</a></h2>
                                                </a>
                                                <div class='d-flex align-items-center'>
                                                    <div class='cat_name d-flex flex-column mr-auto'>
                                                        <a href='/catalog/$category_name_translit/$category_id/$sub_category_translit/$sub_category_id'>$sub_category_name</a>
                                                        <span class='price'>$price ₽ / $price_per</span>
                                                    </div>
                                                    <a class='add-cart' onclick='addToBasket($id); return false;' href='#'><button type='button' class='add-to-basket' data-toggle='modal' data-target='#add-basket-popup'></button></a>
                                                </div>
                                            </article>
                                        
                                </div>
                                ";}
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
30.08.2018, 16:55
Цитата Сообщение от TheArs Посмотреть сообщение
Библиотек никаких нет ( на голяк пишу
Ну здасте, а mysql это волшебница? Устаревшая, но библиотека. Выложите на хостинг, где php > 5.4 работать не будет.
Что касается Вашего кода, надо вот так:

PHP
1
$count = mysql_query("SELECT COUNT (*) FROM `catalog` WHERE `item_name` LIKE '%$search_query%' OR `id`  LIKE '%$search_query%'");
Ну и:

PHP
1
2
3
4
if($count == 0)
{
  echo 'По Вашему запросу ничего не найдено';
}
0
1 / 1 / 0
Регистрация: 10.08.2018
Сообщений: 59
30.08.2018, 17:21  [ТС]
При таком раскладе на любой запрос выводит что ничего не найдено

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
34
35
36
37
38
if($count == 0)
                                {
                                    echo 'По Вашему запросу ничего не найдено';
                                } else {
                                
                                while ($data = mysql_fetch_array($query)){
                                                        
                                        $id = $data['id'];
                                        $image = $data['image'];
                                        $sub_category_name = $data['sub_category_name'];
                                        $item_name = $data['item_name'];
                                        $price = $data['price'];
                                        $price_per = $data['price_per'];
                                        $category_name = $data['category_name'];
                                        $category_id = $data['category_id'];
                                        $sub_category_id = $data['sc_id'];
                                        $category_name_translit = mb_strtolower  (strtr($category_name, $translit));
                                        $sub_category_translit = mb_strtolower  (strtr($sub_category_name, $translit));
                                        $item_name_translit = mb_strtolower  (strtr($item_name, $translit));
                                                    
                                        echo "
                                        <div class='col-md-4'>
                                            <article class='product'>
                                                <a href='/catalog/$category_name_translit/$category_id/$sub_category_translit/$sub_category_id/$item_name_translit/$id'>
                                                    <div class='image' style='height:250px;'><img src='$image' style='padding:20px;' alt=''></div>
                                                    <h2><a href='#'>$item_name</a></h2>
                                                </a>
                                                <div class='d-flex align-items-center'>
                                                    <div class='cat_name d-flex flex-column mr-auto'>
                                                        <a href='/catalog/$category_name_translit/$category_id/$sub_category_translit/$sub_category_id'>$sub_category_name</a>
                                                        <span class='price'>$price ₽ / $price_per</span>
                                                    </div>
                                                    <a class='add-cart' onclick='addToBasket($id); return false;' href='#'><button type='button' class='add-to-basket' data-toggle='modal' data-target='#add-basket-popup'></button></a>
                                                </div>
                                            </article>
                                        
                                </div>
                                ";}}
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
30.08.2018, 17:25
TheArs, $search_query откуда берётся?
0
1 / 1 / 0
Регистрация: 10.08.2018
Сообщений: 59
30.08.2018, 17:27  [ТС]
PHP
1
$search_query = $_GET['search'];
Т.е. оно работает всё нормально и ищет нормально и выводит тоже, но если ничего не находит, то выводит пустоту, а вместо этой пустоты я хочу подставить текст. Который по какой-то причине не получается подставить
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
30.08.2018, 17:31
TheArs, проверьте, что выдаст:

PHP
1
2
$count = mysql_query("SELECT COUNT (*) FROM `catalog` WHERE `item_name` LIKE '%$search_query%' OR `id`  LIKE '%$search_query%'");
echo $count;
И в случае пустого ответа и в случае, когда выборка гарантированно не пустая.
1
1 / 1 / 0
Регистрация: 10.08.2018
Сообщений: 59
30.08.2018, 17:45  [ТС]
PHP
1
2
$count = mysql_query("SELECT COUNT (*) FROM `catalog`");
echo $count;
Тишина

PHP
1
2
$count = mysql_query("SELECT COUNT (*) FROM `catalog` WHERE `item_name` LIKE '%$search_query%' OR `id`  LIKE '%$search_query%'");
echo $count;
Тишина


mysql_error пишет:

FUNCTION k96304ha_show.COUNT does not exist. Check the 'Function Name Parsing and Resolution' section in the Reference Manual
Добавлено через 10 минут
Поправил немного:
PHP
1
2
$count = mysql_query("SELECT COUNT(`id`) FROM `catalog` WHERE `item_name` LIKE '%$search_query%' OR `id`  LIKE '%$search_query%'") or die(mysql_error());
echo $count;
и теперь пишет:
Resource id #8
на любой запрос
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
30.08.2018, 17:48
Цитата Сообщение от TheArs Посмотреть сообщение
Тишина
чудеса, однако. А так?

PHP
1
2
$count = mysql_fetch_row(mysql_query("SELECT COUNT (*) FROM `catalog`"));
echo $count;
1
1 / 1 / 0
Регистрация: 10.08.2018
Сообщений: 59
30.08.2018, 17:49  [ТС]
Всё, починил.

PHP
1
$count = mysql_fetch_array(mysql_query("SELECT COUNT(`id`) FROM `catalog` WHERE `item_name` LIKE '%$search_query%' OR `id`  LIKE '%$search_query%'"));
PHP
1
2
3
4
if($count[0] == 0)
{
     echo 'По Вашему запросу ничего не найдено';
} else {код вывода результатов}
Я просто совсем забыл про mysql_error
Она мне помогла избежать синтаксических ошибок, а дальше я снова перебрал варианты которые я до этого пробовал включая Ваши.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.08.2018, 17:49
Помогаю со студенческими работами здесь

Как создать на форме таблицу с определенным количеством строк, а количество столбцов зависит от количество записей в таблице БД.
Здравствуйте. Я разрабатываю приложение составление расписание занятий в ВУЗе. И мне нужно реализовать такую идею: На форме есть вкладки...

Упорядочить номера строк по убыванию значений найденых сумм
Задача такова: Дана прямоугольная матрица размером n x m,содержащая вешественные числа.Опредилить сумму элементов в каждой строке...

Количество строк в таблице
Имеется таблица в html по типу &lt;table class=&quot;table-1&quot;&gt; &lt;tbody title&gt; &lt;tr&gt;&lt;/tr&gt; &lt;tr&gt;&lt;/tr&gt; &lt;tr&gt;&lt;/tr&gt; &lt;tr&gt;&lt;/tr&gt; ...

Количество строк в таблице
Количество строк в таблице как можно вывести ?

Количество строк в таблице.
Подскажите каким запросом можно через ADOTable узнать количество строк в таблице. Спасибо.


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru