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

Не удается вытащить данные, отфильтровать

19.04.2021, 10:32. Показов 2311. Ответов 36
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
 
$host = 'локал';
$database = 'бд';
$user = 'юзер';
$password = 'пасс';
 
$link = mysqli_connect($host, $user, $password, $database) or die("Ошибка " . mysqli_error($link));
 
$res1 = mysqli_fetch_assoc(mysqli_query($link, "SELECT SUM(meta_value) summa1 FROM wp_postmeta WHERE meta_key = 'subsidiya'"));
 
 $var = $res1['summa1'];
 
    $number = $res1['summa1'];
    $itogo = number_format($number, 2, ",", " ");
    echo "Итого: $itogo";
 
mysqli_close($link);
?>
Нужно добавить фильтрацию-выборку по году, а именно по значению поля year_kassa - 2021.

Пробовал через AND

PHP
1
WHERE meta_key = 'subsidiya' AND meta_value = '2021'
- выдает нуль.

Что делаю не так?!
Миниатюры
Не удается вытащить данные, отфильтровать  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.04.2021, 10:32
Ответы с готовыми решениями:

Отфильтровать данные из первого dataGridView1 и вывести отфильтрованные данные во второй
Добрый день!Нужно отфильтровать данные из первого dataGridView1 и вывести отфильтрованные данные во второй. BindingSource bs = new...

Как вытащить из свойства fields recordset вытащить данные в массив
Как вытащить из свойства fields recordset вытащить данные в массив ассоциативный , подскажите плиз

Отфильтровать данные
Есть вот такой код, как такую фильтрацию сделать при помощи DBComboBox и AdoTable??? ADOTable1-&gt;Filtered=false; AnsiString textEdit...

36
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
19.04.2021, 15:31
Студворк — интернет-сервис помощи студентам
я вам написал пример в ooп стиле
у вас код в процедурном стиле
перепишите, или свое подключение к базе на ooп, или мой код на процедурный
вы по ссылке смотрели материал?
судя по всему, нет
1
0 / 0 / 0
Регистрация: 15.04.2021
Сообщений: 22
19.04.2021, 15:54  [ТС]
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
$mysqli = new mysqli($host, $user, $password, $database);
 
$array_post_id = [];
 
$query = "SELECT post_id FROM wp_postmeta WHERE meta_key = 'year_kassa' AND meta_value = '2021'";
$result = $mysqli->query($query);
 
while ($row = $result->fetch_assoc()) {
    $array_post_id[] = $row['post_id'];
}
 
if(!empty($array_post_id)){
    $query = "SELECT SUM(meta_value) summa1 FROM wp_postmeta WHERE meta_key = 'subsidiya' AND post_id IN(" . implode(',', $array_post_id) . ")";
    $result = $mysqli->query($query);
}
 
 $var = $res1['summa1'];
 
    $number = $res1['summa1'];
    $itogo = number_format($number, 2, ",", " ");
    echo "Итого: $itogo";
 
$mysqli->close();
?>
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
19.04.2021, 15:58
Цитата Сообщение от xetaji2563 Посмотреть сообщение
$res1['summa1'];
тогда тут
Цитата Сообщение от xetaji2563 Посмотреть сообщение
$query = "SELECT SUM(meta_value) summa1 FROM wp_postmeta WHERE meta_key = 'subsidiya' AND post_id IN(" . implode(',', $array_post_id) . ")";
    $result = $mysqli->query($query);
так
PHP
1
 $res1 = $mysqli->query($query);
1
0 / 0 / 0
Регистрация: 15.04.2021
Сообщений: 22
19.04.2021, 16:02  [ТС]
И не сработало

Fatal error: Uncaught Error: Call to a member function fetch_assoc() on null
0
19.04.2021, 16:22

Не по теме:

xetaji2563, судя по названию таблицы "wp_postmeta", вы используете Wordpress. Там подключение к СУБД уже реализовано, не нужно свои подключения городить.

0
0 / 0 / 0
Регистрация: 15.04.2021
Сообщений: 22
19.04.2021, 16:23  [ТС]
Para bellum, да, верно.
Отдельный файл с коннектом и выборкой из БД.
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
19.04.2021, 16:26
Цитата Сообщение от xetaji2563 Посмотреть сообщение
Отдельный файл с коннектом и выборкой из БД.
Ну я и говорю, что такие отдельные файлы не стоит делать, работая в контексте CMS.
Т.е. если работаете с частями CMS (а БД -- часть), лучше использовать функционал этой CMS.
1
0 / 0 / 0
Регистрация: 15.04.2021
Сообщений: 22
19.04.2021, 16:30  [ТС]
Para bellum, благодарю, буду иметь в виду. Но тут не об этом речь :-)
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
19.04.2021, 18:26
Лучший ответ Сообщение было отмечено xetaji2563 как решение

Решение

Попробуйте так:
SQL
1
2
3
4
5
6
7
SELECT SUM(a.meta_value)
    FROM wp_postmeta a
    LEFT JOIN wp_postmeta b USING(post_id)
WHERE
    b.meta_key = 'year_kassa'
    AND b.meta_value = 2021
    AND a.meta_key = 'subsidiya'
2
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
19.04.2021, 18:37
Цитата Сообщение от Para bellum Посмотреть сообщение
FROM wp_postmeta a
    LEFT JOIN wp_postmeta b USING(post_id)
о, не знал что так можно
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
19.04.2021, 18:49
fanatikus, в смысле саму с собой таблицу объединять?
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
19.04.2021, 18:58
Цитата Сообщение от Para bellum Посмотреть сообщение
в смысле саму с собой таблицу объединять?
да.
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
20.04.2021, 08:25
Уточнение.
Цитата Сообщение от Para bellum Посмотреть сообщение
LEFT JOIN
"LEFT" лучше убрать.
0
0 / 0 / 0
Регистрация: 15.04.2021
Сообщений: 22
20.04.2021, 09:13  [ТС]
Итого:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
 
$host = 'локал';
$database = 'бд';
$user = 'юзер';
$password = 'пасс';
 
$mysqli = new mysqli($host, $user, $password, $database);
 
$res1 = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT SUM(a.meta_value) FROM wp_postmeta a JOIN wp_postmeta b USING(post_id) WHERE b.meta_key = 'year_kassa' AND b.meta_value = 2021 AND a.meta_key = 'subsidiya'"));
 
$var = $res1['summa1'];
 
$number = $res1['summa1'];
$itogo = number_format($number, 2, ",", " ");
echo "Итого: $itogo";
 
$mysqli->close();
?>
0,00
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
20.04.2021, 09:53
Вы же пытаетесь из результата получить summa1, значит надо SUM(a.meta_value) заменить на SUM(a.meta_value) summa1
1
0 / 0 / 0
Регистрация: 15.04.2021
Сообщений: 22
20.04.2021, 10:00  [ТС]
Para bellum, ну, елки-палки, точно же! Добавил, заработало! Спасибоооо!

А год в одиночные кавычки заключать не нужно?
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
20.04.2021, 10:01
Цитата Сообщение от xetaji2563 Посмотреть сообщение
А год в одиночные кавычки заключать не нужно?
Числа не обязательно заключать.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.04.2021, 10:01
Помогаю со студенческими работами здесь

Необходимо отфильтровать данные
Всех приветствую! Необходимо отфильтровать данные - номера счетов в столбце по следующим критериям &quot;=40*&quot;, &quot;=41*&quot;,...

Правильно отфильтровать данные
Фильтрую данные таким способом : Sheets.Add After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = &quot;Критерии&quot; Cells(2, 1)...

Отфильтровать и сложить данные
Друзья! Есть XLS файл содержащий 2 колонки. Первая - набор цифр Вторая содержит записи, которые могу повторятся между собой. ...

Отфильтровать данные в StringGrig
Здравствуйте. Подскажите идею! Есть форма на которую из excel импортируются данные в StringGrig. Далее нужно чтобы данные фильтровались и...

Не могу отфильтровать данные
Всем привет! Народ, у меня вот какая задача: Есть объект вида: object(SimpleXMLElement)#1 (1) { =&gt; array(31796) { ...


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

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
Новые блоги и статьи
Инструменты 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 - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка 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, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru