[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подсчет всех полей сразу.
Lightt
Подскажите пожалуйста.

Есть таблица
id_result___id_executors
1__yes____6
2__yes____6
3__yes____12
4__yes____12
5__no_____6
6__yes____3

Из нее должно вывестись -

6 имеет 3 поручения
12 имеет 2 поручения
3 имеет 1 поручения

Вывожу я это вот так -


<?php foreach($all_clienti AS $order_user):?>
<?php
if(isset($order_user['order_ispolnitel'])): ?>
<b><?php echo $order_user['order_ispolnitel']?></b> имеет <b><?php echo $yyy;?></b> Поручений ; <br>
<?php endif?>
<?php
endforeach;?>


Сам запрос у меня вот такой -

$result = mysql_query("SELECT DISTINCT
t1.FIO AS order_ispolnitel
FROM
order_user
LEFT JOIN client t1 ON t1.id = order_user.id_executors"
);
while ($all_clienti[] = mysql_fetch_assoc($result)) {}

$sss = mysql_query("select * from order_user WHERE id_executors LIKE '6'");
while ($all_clienti[] = mysql_fetch_assoc($sss)) {$yyy++;}


Проблема в том что в нем уже прописанно LIKE = 6 а мне нужно чтоб он прошелся по всем...



Спустя 7 минут, 59 секунд (26.05.2011 - 16:28) Michael написал(а):
Выполни такой запрос в phpmyadmin и посмотри результат:
SELECT id_executors, COUNT(id) AS couid
FROM order_user
GROUP BY id_executors


Разницы между no и yes нет получается?

Спустя 6 минут, 54 секунды (26.05.2011 - 16:34) pavlik написал(а):

$query = "SELECT
DISTINCT A.id_executors,
(SELECT
B.FIO
FROM
client B
WHERE
B.id = A.id_executors
) FIO,
(SELECT
COUNT(*)
FROM
order_user C
WHERE
C.id_executors = A.id_executors
) col_porucheniy
FROM
order_user A
"
;


Такое, интересно, сработает?

Спустя 9 минут, 3 секунды (26.05.2011 - 16:43) Lightt написал(а):
Michael
Спасибо =) работает.

Вообще есть =) но я думал просто условие поставить

WHERE Result LIKE "YES"


Но что то сейчас не выходит =)

Спустя 12 минут, 21 секунда (26.05.2011 - 16:56) Lightt написал(а):
Все, получилось спасибо =)

pavlik
Твой вариант тоже работает =)
Но Michael как то попроще выглядит =)

Спустя 1 час, 30 минут, 14 секунд (26.05.2011 - 18:26) Lightt написал(а):
А вот еще вопрос...
в таблице order_user также есть пустые результты

id_result___id_executors
1__yes____6
2__yes____6
3__yes____12
4__yes____12
5__no_____6
6__yes____3
7__ ____6
8__ ____12

Как можно вывести несколько запросов в одной строчке?

Имеется несколько запросов.

//вывод всех исполнителей 
$ispol = mysql_query('SELECT
order_user.id,
t1.FIO AS order_ispolnitel
FROM
order_user
LEFT JOIN client t1 ON t1.id = order_user.id_executors
GROUP BY
id_executors'
);
while ($allispol[] = mysql_fetch_assoc($ispol)) {}


//подсчет общих поручений
$order = mysql_query("SELECT
order_user.id,
id_executors, COUNT(id) AS couid
FROM
order_user
GROUP BY
id_executors"
);
while ($allorder[] = mysql_fetch_assoc($order)) {}

//подсчет выполненных поручений
$orderyes = mysql_query("SELECT
order_user.id,
id_executors, COUNT(id) AS couid
FROM
order_user
WHERE Result LIKE 'YES'
GROUP BY
id_executors"
);
while ($allorderyes[] = mysql_fetch_assoc($orderyes)) {}

//подсчет не выполненных поручений
$orderno = mysql_query("SELECT
order_user.id,
id_executors, COUNT(id) AS couid
FROM
order_user
WHERE Result LIKE 'NO'
GROUP BY
id_executors"
);
while ($allorderno[] = mysql_fetch_assoc($orderno)) {}



Вывожу вот так -

<?php foreach($allispol AS $order_user):?>	
<?php
if(isset($order_user['id'])): ?>
<b><?php echo $order_user['order_ispolnitel']?></b> имеет
<br>
<?php endif?>
<?php
endforeach;?>

<?php
foreach($allorder AS $order_user):?>
<?php
if(isset($order_user['id'])): ?>
<b><?php echo $order_user['couid'];?></b> Поручений. <br>
<?php endif?>
<?php
endforeach;?>

<?php
foreach($allorderyes AS $order_user):?>
<?php
if(isset($order_user['id'])): ?>
из них <b><?php echo $order_user['couid'];?></b> Выполненно. <br>
<?php endif?>
<?php
endforeach;?>

<?php
foreach($allorderno AS $order_user):?>
<?php
if(isset($order_user['id'])): ?>
из них <b><?php echo $order_user['couid'];?></b> Не выполненно. <br>
<?php endif?>
<?php
endforeach;?>


На что соответственно выводится -
Клепинин А.В. имеет
Фатхуллин В.Н. имеет
Коллесников В.А. имеет
Шушканов А.О. имеет
5 Поручений.
4 Поручений.
1 Поручений.
1 Поручений.
из них 2 Выполненно.
из них 1 Выполненно.
из них 1 Выполненно.
из них 1 Не выполненно.

Как можно поместить это в одну срочку? Чтоб выдавал -
Клепинин А.В. имеет 5 Поручений. из них 2 Выполненно. 0 не выполненных

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.