Я пытаюсь вывести статистику вызовов, совершаемых агентами во всех кампаниях набора, которые вызывают в течение дня. существует несколько кампаний, в настоящее время 3, набранных за один день. Я получаю данные кампании из имени таблицы, которое изменяется по такой кампании: custom_16546546 и custom_1564654. Я запускаю запрос для получения числовой части имени столбца, а затем передаю его как переменную в другой запрос, который выводит статистику пользователей. Здесь отображаются только данные из того, что я могу сказать, это последняя информация о запросах запросов. Я отобразил данные массива из первого запроса, чтобы подтвердить, что имена таблиц хранятся, и это выглядит нормально.Mysql выводит только данные последних циклов
$today = "2013-05-29";
$customquery = "SELECT distinct(entry_list_id) FROM vicidial_list where entry_list_id > 0 and last_local_call_time between '$today 00:00:00' and '$today 23:59:59';" ;
$customresult = mysql_query($customquery) or die(mysql_error());
$customrows = mysql_num_rows($customresult);
while ($customrowResult = mysql_fetch_array($customresult))
{
$customID[] = $customrowResult["entry_list_id"];
}
$z = 0;
if(!$customID){
//echo " Please Select a valid date range: ".$today. " - ".$today." is not valid" ;
}else{
while($z<$customrows)
{
$query = "SELECT
vicidial_users.user,
vicidial_users.full_name,
vicidial_log.list_id,
COUNT(CASE WHEN (vicidial_log.status = 'SALE') THEN 1 ELSE null END) as sumcountSamnt,
COUNT(CASE WHEN (vicidial_log.status = 'SALE' AND custom_$customID[$z].up_amt <> '') THEN 1 ELSE null END) as sumcountupAmnt,
COUNT(CASE WHEN (vicidial_log.status = 'SALE' AND custom_$customID[$z].cc_num <> '') THEN 1 ELSE null END) as sumccverifiedcountAmnt,
COUNT(CASE WHEN (vicidial_log.status = 'SALE' AND custom_$customID[$z].bank_act <> '') THEN 1 ELSE null END) as sumbankverifiedcountAmnt,
SUM(CASE WHEN (vicidial_log.status = 'SALE' AND custom_$customID[$z].cc_num <> '') THEN custom_$customID[$z].s_amount ELSE null END) as sumccverifiedAmnt,
SUM(CASE WHEN (vicidial_log.status = 'SALE' AND custom_$customID[$z].bank_act <> '') THEN custom_$customID[$z].s_amount ELSE null END) as sumbankverifiedAmnt,
SUM(CASE WHEN (vicidial_log.status = 'SALE') THEN custom_$customID[$z].d_amt ELSE null END) as sumDamnt,
SUM(CASE WHEN (vicidial_log.status = 'SALE') THEN custom_$customID[$z].up_amt ELSE null END) as sumUpamnt,
SUM(CASE WHEN (vicidial_log.status = 'SALE') THEN custom_$customID[$z].md_amt ELSE null END) as sumMdamnt,
SUM(CASE WHEN (vicidial_log.status = 'SALE') THEN custom_$customID[$z].s_amount ELSE null END) as sumSamnt
FROM
vicidial_log
INNER JOIN
vicidial_users
ON
(vicidial_log.user = vicidial_users.user)
INNER JOIN
custom_$customID[$z]
ON
(vicidial_log.lead_id = custom_$customID[$z].lead_id)
WHERE
call_date
BETWEEN
'$today 00:00:00'
AND
'$today 23:59:59'
AND
vicidial_log.user != 'VDAD'
AND
vicidial_users.user_group != 'TX-Training'
GROUP BY
vicidial_log.user, vicidial_log.campaign_id
";
//This query is used to sum loop data data
$queryResult = mysql_query($query) or die(mysql_error()); //This line perfomrs query error handling
$z++;
}
вот фрагмент того, как данные отображаются
$result = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_assoc($result))
{
echo "<tr>\n";
//--fullname and userID
echo "<td> ".$row["full_name"]. " - ".$row["user"]."</td>\n";
//Agent total sales amount
if ($row["sumcountSamnt"] == '0') {
echo "<td>$nosalestxt</td>\n";
} else {
echo "<td> $".$row["sumSamnt"]."</td>\n";
}
}
Так я хочу, чтобы иметь возможность отображать совокупность данных для каждого пользователя из всех кампаний они набираемых из.
Заранее спасибо за вашу помощь
EDIT: я использую & строки из цикла в то время как для вывода данных и да Chris я хотел бы сохранить его в массив, но я думаю, что им просто не хватает его, еще раз спасибо
Что вы ожидаете? Вы запускаете этот огромный запрос, извлекаете результаты, а затем сразу повторяете цикл. Вы не обрабатываете данные, вы не выводите их. Итак, в конце концов, вы остались с результатами цикла ** LAST ** итерации цикла ... –
В дополнение к тому, что сказал @MarcB, пожалуйста, не используйте функции 'mysql_ *'. Они больше не поддерживаются и [** устарели от PHP 5.5.0 **] (https://wiki.php.net/rfc/mysql_deprecation). Прочтите [this] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) для более подробного объяснения. Вместо этого используйте [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/mysqli) и узнайте о [_prepared statements_] (http://en.wikipedia.org/ вики/Prepared_statement). [Эта статья] (http://php.net/manual/en/mysqlinfo.api.choosing.php) поможет вам решить, какой API использовать. – PLPeeters