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

Вывести число записей с двух таблиц

20.01.2016, 22:34. Показов 1543. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите как сделать вывод числа всех записей с двух таблиц. С одной получилось:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$mysqli = new mysqli("localhost", "", "", "");
 
/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Соединение не удалось: %s\n", mysqli_connect_error());
    exit();
}
 
if ($result = $mysqli->query("SELECT id FROM tabl1 ORDER BY id")) 
{
    /* определение числа рядов в выборке */
    $row_cnt = $result->num_rows;
 
    printf("В базе %d записей.\n", $row_cnt);
 
    /* закрытие выборки */
    $result->close();
}
 
/* закрытие соединения */
$mysqli->close();
?>
Пытался так но не работает:
SQL
1
IF ($result = $mysqli->query("SELECT * FROM ( SELECT id from tabl1 ORDER BY id  UNION SELECT id from tabl2 ORDER BY id)"))
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.01.2016, 22:34
Ответы с готовыми решениями:

Выбор записей с двух таблиц
Здравствуйте Есть 2 таблицы Client и PayList Делаю вот такой запрос SELECT Client.FamClient, PayList.OplPos, PayList.Posetil FROM...

Выбор записей из двух таблиц
Здравствуйте. Есть таблица users. В ней есть поля id, login, email, etc. Есть еще одна таблица dialogs. В ней поля id, reciver, sender,...

Выбор записей из двух таблиц
Сразу перейду к делу. 1 таблица goods в ней поля ( 2 для примера ) -&gt; goods_id и cast 2 таблица name в ней поля ( 2 для примера...

23
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
20.01.2016, 22:45
SQL
1
SELECT (SELECT COUNT(1) FROM `tabl1`) +  (SELECT COUNT(1) FROM `tabl2`) AS 'all'
0
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 135
20.01.2016, 22:50  [ТС]
Выводит только число 1, а должно больше 500.
0
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
20.01.2016, 23:03
Цитата Сообщение от mat777 Посмотреть сообщение
Выводит только число 1, а должно больше 500.
запрос правильный можете выполнить в phpmyadmin, консоли ...
$result = $mysqli->query() возвращает объект при SELECT
читайте документацию внимательно
0
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 135
20.01.2016, 23:13  [ТС]
Но ведь с одной таблицей работает, выводит общее кол-во, а при:
SQL
1
IF ($result = $mysqli->query("SELECT (SELECT COUNT(1) FROM `tab1`) + (SELECT COUNT(1) FROM `tab2`) AS 'all'"))
показывает, будто только одна запись, т.е не суммирует(
Может есть другой способ?
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,913
20.01.2016, 23:23
mat777, какой-то страшный код вы показали, как именно проверяете количество элементов?

Проверил вышеозвученный вариант, у меня работает.
0
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
20.01.2016, 23:31
Цитата Сообщение от mat777 Посмотреть сообщение
Может есть другой способ?
Конечно есть. Научится работать с базой данных.
Вы же уже почти написали код. Теперь осталось всего немножко прочитать страницу документации.
Чтобы подсчитать количество записей не нужно получать все id этих записей. Это может быть затратно и незачем. Для этого есть COUNT
Ведь достаточно ваш запрос вставить в примеры описанные в документации
1
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 135
20.01.2016, 23:33  [ТС]
Какой нашел в инэте)) Сделал так как подсказал Poznakomlus, но не суммирует.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$mysqli = new mysqli("localhost", "", "", "");
/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Соединение не удалось: %s\n", mysqli_connect_error());
    exit();
}
if ($result = $mysqli->query("SELECT (SELECT COUNT(*) FROM `tab1`) UNION (SELECT COUNT(*) FROM `tab2`) AS 'all'")) 
 
 
{
    /* определение числа рядов в выборке */
    $row_cnt = $result->num_rows;
 
    printf(" %d \n", $row_cnt);
 
    /* закрытие выборки */
    $result->close();
}
/* закрытие соединения */
$mysqli->close();
?>
Подскажите пожалуйста вариант по лучше.
0
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
20.01.2016, 23:51
/* определение числа рядов в выборке */
$row_cnt = $result->num_rows;
результат 1 строка в выборке для данного запроса всегда будет
читай страницу которую дал, сколько можно разжевывать

Добавлено через 14 минут
Где в моем примере UNION?
0
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 135
21.01.2016, 00:01  [ТС]
Блин не могу догнать. Пробовал разные варианты с той ссылки. Банально не хватает знаний

А то пытался другим вариантом делать
0
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
21.01.2016, 00:10
PHP
1
2
3
$result = $mysqli->query("SELECT (SELECT COUNT(1) FROM `tab1`) + (SELECT COUNT(1) FROM `tab2`) AS 'all'");
$row = $result->fetch_array(MYSQLI_NUM);
var_dump($row);
0
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 135
21.01.2016, 00:22  [ТС]
Всё разобрался Благодарю Poznakomlus помог.

Добавлено через 9 минут
Еще вопрос. Добавляю условие к одной таблице:
SQL
1
SELECT COUNT(1) FROM `tab1`) + (SELECT COUNT(1) FROM `tab2` WHERE img='фото') AS 'all'
выдаёт результат только с первой таблицы.
0
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
21.01.2016, 00:27
Внимательнее
SQL
1
"SELECT (SELECT COUNT(1) FROM `tab1`) + (SELECT COUNT(1) FROM `tab2` WHERE `img`='фото') AS 'all'
0
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 135
21.01.2016, 00:35  [ТС]
Всё равно результат только по tab1. Может дело в AS 'all' ?
0
Эксперт PHP
 Аватар для Fedor Vlasenko
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
21.01.2016, 00:39
AS 'all' это псевдоним
в tab2 есть значения удовлетворяющие условию WHERE `img`='фото'
0
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 135
21.01.2016, 20:27  [ТС]
Да где то половина записей. В столбце img есть словофото.

Добавлено через 36 секунд
не хочет считать по выборке

Добавлено через 8 минут
Пытался посчитать в одной таблице по условию - не вышло

Добавлено через 7 часов 35 минут
Всю ночь голову ломал, перепробовал миллион вариантов. Не выходит сделать даже для одной таблицы подсчет по условию WHERE.

Очень нужна помощь

Добавлено через 11 часов 59 минут
Неужели не кто не в курсе?
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,913
21.01.2016, 20:54
mat777, вам дали ссылку на изучение и пример готового кода. Лично я не в курсе, чем ещё вам помочь.
0
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 135
21.01.2016, 21:22  [ТС]
Jodah то что в начале обсуждали уже получилось, теперь пытаюсь вывести сумму определённых записей всё также из 2-х таблиц, но во второй еще и с условием WHERE.
Но так не хочет вщитывать 2-ю табл
SQL
1
SELECT (SELECT COUNT(1) FROM `tab1`) + (SELECT COUNT(1) FROM `tab2` WHERE `img`='фото') AS 'all'
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,913
21.01.2016, 22:10
mat777, магии не бывает. Запрос написан правильно, значит либо выводите криво, либо не везде img = 'фото'.
0
0 / 0 / 0
Регистрация: 06.08.2013
Сообщений: 135
21.01.2016, 23:27  [ТС]
А если в img есть пустые поля, может из-за этого не выводить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.01.2016, 23:27
Помогаю со студенческими работами здесь

Удаление записей сразу из двух таблиц
Есть вот такой контроллер на удаление public ActionResult Delete(int id = 0) { UserProfile userprofile =...

Сравнение двух таблиц с добавлением записей
Уважаемые ГУРУ Access! Есть такая задача. Две таблицы с текстовыми полями. tb1 поля tb1.1; tb1.2; tb1.3-пустое текстовое поле и ...

Запрос на сравнение записей из двух таблиц
Всем привет! Ребята подскажите такой вопрос. Есть 2 таблицы, как можно сделать сравнение записей если в таблицах есть: 1. id_loc,...

Запрос на сравнение записей из двух таблиц
имеется две таблицы, в первой таблице (Tabl1) поля id, name, multi, ms, card, sd во второй таблице (Tabl2) поля id, name, multi, card...

Склейка двух таблиц и получение суммы записей
Наверное из мира фантастики, но все же хочу поинтересоваться. Есть две таблицы TABLE_1 - таблицы с новостями id | added_by ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru