我创建了一个循环查看一组表ID的查询,以获得其组合值的总和。有错误处理我得到一个“表'asterisk.custom_'不存在”错误,查询显然被杀死。但是如果我删除了错误处理,那么我得到一个“mysql_fetch_array()期望参数1是资源”,并且查询完成它应该。 提前感谢您的帮助。
include("currentday.php");
//---used for testing passing variables
//echo $customID[0];
//echo "<br>".$numrows;
$i = 0;
while($i<=$numrows)
{
mysql_select_db("asterisk") or die(mysql_error()); //This line determines the database to use
$query = "SELECT
vicidial_users.user,
vicidial_users.full_name,
sum(vicidial_agent_log.pause_sec) as sumPause,
sum(custom_$customID[$i].d_amt) as sumDamnt,
sum(custom_$customID[$i].up_amt) as sumUpamnt,
sum(custom_$customID[$i].md_amt) as sumMdamnt,
sum(custom_$customID[$i].s_amount) as sumSamnt,
sum(vicidial_agent_log.dispo_sec)
FROM
vicidial_agent_log
INNER JOIN
vicidial_users
ON
(vicidial_agent_log.user = vicidial_users.user)
INNER JOIN
custom_$customID[$i]
ON
(vicidial_agent_log.lead_id = custom_$customID[$i].lead_id)
WHERE
vicidial_users.user = 'tcx'
GROUP BY
vicidial_users.full_name
ORDER BY
vicidial_agent_log.event_time DESC
";
$queryResult = mysql_query($query);// or die(mysql_error());
while ($rowResult = mysql_fetch_array($queryResult))
{
$pauseResult[] = $rowResult["sumPause"];
$sumdamntResult[] = $rowResult["sumDamnt"];
$sumupamntResult[] = $rowResult["sumUpamnt"];
$summdamntResult[] = $rowResult["sumMdamnt"];
$sumsamntResult[] = $rowResult["sumSamnt"];
}
//print_r($pauseResult);
//echo $pauseResult[0];
$i++;
}
更新: 该表存在于数据库中: custom_2346579543413 custom_5466546513564 它们是由拨号软件创建的,我从另一个查询中调用它们,这些查询为我提供了表名的数字部分,因此这个查询循环遍历customID数组中的值来进行查询,再次感谢
更新: Sammitch,谢谢你的建议,但他们没有用。
解决方案:
谢谢Marc,你证实了我的怀疑,因为它正确地循环但是由于某种原因它循环了我们键的次数。所以我回应$ i确认,事实上它是输出0,1,2,3,因为我知道只有3个键,最后一个没有返回任何东西,所以错误处理捕获它并杀死了整个循环以及在关闭错误处理时它出现的原因。解决方案实际上相当简单,它在我使用的while循环评估字符串中
while($i<=$numrows)
while($i<$numrows)//this worked, the equals part of that gave it an extra loop
答案 0 :(得分:4)
并且查询按原样完成。
不,它没有。 “mysql_fetch_array()期望参数1是资源”意味着“查询失败,并且您在调用mysql_fetch_array()之前没有费心去检查”。
您的问题是字符串内部的变量扩展不喜欢数组索引。你需要改变:
"sum(custom_$customID[$i].d_amt) as sumDamnt,"
要:
"sum(custom_{$customID[$i]}.d_amt) as sumDamnt,"
或者:
"sum(custom_" . $customID[$i] . ".d_amt) as sumDamnt,"
让它正常工作。