2012-12-13 4 views
0

У меня есть таблица MySQL payment, где хранятся все данные, связанные с оплатой моего клиента. Поля таблицы: fileNo, clientName, billNo, billAmount, status. Я хочу создать форму поиска, где я буду вводить fileNo или clientName, что даст таблицу, в которой будут записаны все записи для этого номера файла или имя клиента, где status = 0 (неоплаченный). Здесь billAmount - номер с плавающей запятой.MySQL SUM() Операция

Я не хорош в MySQL, но вот моя версия SQL на fileNo

$sql = "SELECT * FROM `payment` WHERE `fileNo` = '$fileNo' AND `status` = '0'"; 

SQL по CLIENTNAME

$sql = "SELECT * FROM `payment` WHERE `clientName` = '$clientName' AND `status` = '0'"; 

в любом случае я сделать запрос, я также должен показать общую неоплаченную сумму против этого файлаNo или clientName.

Из моего понимания, SUM() операция должна быть чем-то вроде этого:

$sql = "SELECT SUM(billAmount) AS `unpaid` WHERE `fileNo` = '$fileNo' AND `status` = '0'"; 

или

$sql = "SELECT SUM(billAmount) AS `unpaid` WHERE `clientName` = '$clientName' AND `status` = '0'"; 

Мой вопрос, я правильно с моей SUM() операции? И как мне получить общую неоплаченную сумму, которую я выбрал как unpaid? могу ли я сохранить его в переменной?

Любая идея, предложения или ссылки на ресурсы будут высоко оценены!

ответ

0

я думаю, что и должны использовать второй запрос, но у пропущенный ИНЕКЕ

$sql = "SELECT SUM(billAmount) AS `unpaid` FROM payment WHERE `clientName` = '$clientName' AND `status` = '0'"; 

ваша общая сумма невыплаченных да и не могу получить его в качестве переменной, как этот

$result = mysql_query($sql); 
$row = mysql_fetch_array($result); 
    ehco $row['unpaid'] ;   <------ this will give you the unpaid amount. 

конечно после того, как у выборки вашего запрос.

0

Я думаю, что ваш запрос совершенно правильно, не забудьте ЕКОМ:

$sql = "SELECT SUM(billAmount) AS `unpaid` FROM payment WHERE `clientName` = '$clientName' AND `status` = '0'"; 

Будьте осторожны, если имя вашего клиента, возможно, содержит кавычки (посмотрите на функцию addslashes)

Тогда, чтобы получить сумму:

$sum = current(mysql_fetch_row(mysql_query($sql))); 
0

BTW

В этом запросе вы пропустили FROM Пунктом :-)

"SELECT SUM(billAmount) AS `unpaid` 
FROM payment 
WHERE `fileNo` = '$fileNo' 
AND `clientName` = '$clientName' 
AND `status` = '0'"; 

Да можно сохранить значение в переменной из первого запроса и использоваться в вторичных. Желаю, если бы я мог дать вам правильный образец из SQLFIDDLE, на мобильном телефоне. Будет обновлен позже, если вы сможете попробовать этот код.