Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: подсчёт количество записей в 2х таблицах

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
gheka
Отправлено: 04 Ноября, 2013 - 15:36:26
Post Id



Частый гость


Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011  


Помог: 2 раз(а)




Здравствуйте, нужно подсчитать количество записей в 2х таблицах с условием.

Помогите составить запрос пробовал так

CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. $t = "SELECT count(*) AS `count` FROM `t` JOIN `t1` ON t.id=t1.id WHERE `id`='%d'";
  3. $result = mysql_query ( sprintf ( $t, mysql_real_escape_string ( 1 ) ));
  4.                        
  5. IF ( mysql_result ( $result, 0 ) != 0 ) {
  6.  
  7. // есть
  8. } else {
  9. // нет
  10. }
  11.  
  12.  


Но не работает.

(Отредактировано автором: 04 Ноября, 2013 - 15:38:17)

 
 Top
esterio
Отправлено: 04 Ноября, 2013 - 15:48:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




что это такое? оформите сначала код нормально
 
 Top
gheka
Отправлено: 04 Ноября, 2013 - 15:57:12
Post Id



Частый гость


Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011  


Помог: 2 раз(а)




esterio пишет:
что это такое? оформите сначала код нормально


А что тут не понятного?

Соединяю 2 таблицы t и t1 через оператор


Указываю одинаковые поля с одинаковыми значениями t.id=t1.id через оператор

Получаю количество строк в одной таблице так:

CODE (SQL):
скопировать код в буфер обмена
  1. $t = "SELECT count(*) AS `count` FROM `t` WHERE `id`='%d'";
  2. $result = mysql_query ( sprintf ( $t, mysql_real_escape_string ( 1 ) ));


Это работает.

(Отредактировано автором: 04 Ноября, 2013 - 15:59:41)

 
 Top
imya
Отправлено: 04 Ноября, 2013 - 16:06:26
Post Id



Участник


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Сент. 2012  
Откуда: Запорожье, Украина


Помог: 19 раз(а)




CODE (SQL):
скопировать код в буфер обмена
  1. SELECT count(t1.*) AS t1Count FROM table1 AS t1 JOIN table2 AS t2 ON t1.id = t2.id WHERE t1.id = {$id}

?


-----
PHP:
скопировать код в буфер обмена
  1. do {box != cat;} while (cat != box);


Когда нормальный человек, уезжая из дома одевает на жену пояс верности, веб-дизайнер ставит на нее счетчик...
 
My status
 Top
gheka
Отправлено: 04 Ноября, 2013 - 16:31:10
Post Id



Частый гость


Покинул форум
Сообщений всего: 191
Дата рег-ции: Февр. 2011  


Помог: 2 раз(а)




imya пишет:
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT count(t1.*) AS t1Count FROM table1 AS t1 JOIN table2 AS t2 ON t1.id = t2.id WHERE t1.id = {$id}

?


Не работает, да и не совсем понял, ваш запрос

напишу код так:

table1 Таблица 1
table2 таблица 2

в обоих таблицах есть поле ID у которых значение одинаковое например id пользователя id_user

CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. $result = mysql_query ("SELECT count(*) AS `count` FROM `table1` JOIN `table2` ON table1.id_user=table2.id_user WHERE `id_user`='1'");
  3.  
  4.  


Нужно получить общее количество строк из обеих таблиц по условию id_user. Не зависимо есть в одной из них вообще записи.

(Отредактировано автором: 04 Ноября, 2013 - 16:48:36)

 
 Top
deblogger
Отправлено: 05 Ноября, 2013 - 05:24:03
Post Id


Новичок


Покинул форум
Сообщений всего: 59
Дата рег-ции: Нояб. 2013  


Помог: 0 раз(а)

[+]


gheka пишет:
Нужно получить общее количество строк из обеих таблиц


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



какой таблицы ид_юзер? Такое условие при условии что id уникальное даст 1 строку если такой ид есть и 0 если нет.



Если имена связанных полей одинаковые можно юзать using();

Короче, я все равно не понял задачи в целом, а в частности чтобы :

Цитата:
Не зависимо есть в одной из них вообще записи.


Тогда добавьте LEFT к JOIN
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB