2013-09-02 3 views
0

Пусть говорят, что я тусклый подытожить Продолжительность в моем отпуска таблицы и с условием Leave_Type = «Ежегодной» и статус = «Одобрено»Неправильный выход после того, как суммировать данные из базы данных

Моя база данных

table leave 
{Leave_ID(PK), Leave_Type, Status, Duration, Emp_ID(FK)} 

table employee 
{Emp_ID(PK), Emp_Name} 

Я использую следующий код, чтобы подвести Продолжительность

$aid=$_SESSION["eid"]; 

$Annual = mysql_query("select SUM(Duration) 

FROM `leave` 

WHERE leave.Leave_Type = 'Annual' and leave.Status = 'Approved' 
and leave.Emp_ID = employee.Emp_ID and leave.Emp_ID = $aid"); 

путь я отображать вывод

<td><?php echo $Annual;?></td> 

Но выход, который я получаю, это что-то вроде «Идентификатор ресурса №4». Это не тот результат, который я хочу, и это должна быть общая сумма продолжительности. Есть ли какие-либо проблемы с mysql_query или способом распечатать мой вывод?

+0

Что такое 'type' в' длительности 'column? Integer, Datetime? – Tikkes

+0

Integer ........ –

+0

Ваш запрос фильтрует 'employee.Emp_ID', но не читает' employee'. Невозможно, чтобы он возвращал любой результат: он должен быть сбой. –

ответ

1

Вы делаете неправильный выход!

$AnnualData = mysql_fetch_assoc($Annual); 

Чем выход:

<td><?php echo $AnnualData['SUM(Duration)'];?></td> 

Если вы хотите, вы можете добавить псевдоним в заявлении суммы, как это (в запросе SQL):

SUM(Duration) AS total 

и чем объем производства, как это:

<td><?php echo $AnnualData['total'];?></td> 
+0

Еще лучше, введите имя на поле. 'SUM (Duration) как leaveDuration' и получить его как' $ AnnualData ['leaveDuration'] ' – Tikkes

+0

Большое вам спасибо. Я решил проблему. –

0

Вы только запустив запрос, вам нужно получить данные.

Изменение mysql_query к mysqli_query (бывший один осуждается), а затем использовать mysqli_fetch_assoc($Annual)

0

Вы должны добавить;

$annual2 = mysql_fetch_array($annual); 

затем

<?PHP echo $annual2['Duration']; ?> 

Надеется, что это помогает :)

+0

Это не будет работать, так как вы выбрали ** СУММ ** из 'Duration', а не' Duration' – Tikkes

+0

Итак, добавьте $ annual3 = SUM ($ annual2 ['duration']; – MarkTWebsite

+0

Извините, но нет , посмотрите на запрос и ответ 'Lwyrn' дал раньше. – Tikkes

0
$query=mysql_fetch_array($Annual); 

echo $query[0]; 

он будет печатать то, что вы хотите точно ...

Смежные вопросы