0 / 0 / 0
Регистрация: 15.04.2021
Сообщений: 22
MySQL

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

19.04.2021, 10:32. Показов 2430. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru