Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Узнать количество сообщений в 2-x таблицах
 
 автор: ivanov_max   (12.08.2009 в 20:35)   письмо автору
 
 

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

пример из 2 запросов
SELECT count(*) FROM outbox WHERE outbox_user='".$log."';
и
SELECT count(*) FROM trash WHERE trash_user='".$log."';

пробовал так не получается:
SELECT count(*) FROM outbox WHERE outbox_user='".$log."' UNION ALL SELECT count(*) FROM trash WHERE trash_user='".$log."';
выводит только одно число
а нужно чтобы вывело 2 числа или массив чисел

или может все же лучше 2 запроса

  Ответить  
 
 автор: Trianon   (12.08.2009 в 20:37)   письмо автору
 
   для: ivanov_max   (12.08.2009 в 20:35)
 

Зачем одним?
Кстати, Вы не правы - запрос с UNION ALL выдает данные полностью. Хоть это и изврат.

  Ответить  
 
 автор: ivanov_max   (12.08.2009 в 21:00)   письмо автору
 
   для: Trianon   (12.08.2009 в 20:37)
 

а как тогда лучше, подскажите

<?php
$dbpriv 
= new PDO('sqlite:data/privat.db');


$intotals $dbpriv->query("SELECT count(*) FROM outbox WHERE outbox_user='".$log."' UNION ALL SELECT count(*) FROM trash WHERE trash_user='".$log."';");
$intotal$intotals-> fetchColumn();

print_r($intotal);


этот код выводит только цифру 3 (не массив)
хотя в outbox 3 сообщение удовлетворяющие условие, а в trash 1 сообщение

  Ответить  
 
 автор: Trianon   (12.08.2009 в 21:08)   письмо автору
 
   для: ivanov_max   (12.08.2009 в 21:00)
 

Лучше - независимыми запросами. Это без вариантов.

а еще разок поfetchить?

  Ответить  
 
 автор: ivanov_max   (12.08.2009 в 21:32)   письмо автору
 
   для: Trianon   (12.08.2009 в 21:08)
 

да вы правы если еще раз fetchColumn сдела ть то выведет цифру 1, не очень удобно

можно также и так
<?php
$intotals 
$dbpriv->query("SELECT count(*) FROM outbox WHERE outbox_user='".$log."' UNION ALL SELECT count(*) FROM trash WHERE trash_user='".$log."';");
$intotal $intotals->fetchAll();

и теперь переменные $intotal[0][0и $intotal[1][0будут содержать то что нужноно так тоже не удобно

вы не знаете есть ли в pdo запрос типа
$total = $dbpriv->singleQuery("SELECT count(*) FROM inbox WHERE inbox_user='".$log."';");
это из sqlite2
или querySingle из sqlite3
сразу выводит число сообщений без дополнительных действий

  Ответить  
 
 автор: Trianon   (12.08.2009 в 22:10)   письмо автору
 
   для: ivanov_max   (12.08.2009 в 21:32)
 

не знаю.

  Ответить  
 
 автор: ivanov_max   (12.08.2009 в 23:20)   письмо автору
 
   для: Trianon   (12.08.2009 в 22:10)
 

сделал вот так
<?php
$intotals 
$dbpriv->query("SELECT count(*) FROM outbox WHERE outbox_user='".$log."' UNION ALL SELECT count(*) FROM trash WHERE trash_user='".$log."';");
$intotal $intotals->fetchAll(PDO::FETCH_COLUMN);
$intotal[0и $intotal[1дают то что надо

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования