J'ai créé une requête qui parcourt un groupe d'ID de table pour obtenir la somme de leurs valeurs combinées. avec la gestion des erreurs je reçois une erreur "Table 'asterisk.custom_' n'existe pas" et la requête est tuée de toute évidence. mais si je supprime la gestion des erreurs, j'obtiens un "mysql_fetch_array() attend que le paramètre 1 soit une ressource" et la requête se termine comme il se doit. Merci d'avance pour votre aide.La table n'existe pas
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++;
}
Mise à jour: Le tableau existe dans la base de données: custom_2346579543413 custom_5466546513564 ils sont créés par le logiciel de numérotation et im les appelant d'une autre requête qui me fournit la partie numérique du nom de table pour cette boucles d'interrogation à travers les valeurs dans le tableau customID pour faire la requête, Merci encore
Mise à jour: Sammitch, merci pour la suggestion, mais ils n'ont pas fonctionné.
Solution:
Merci Marc, vous avez confirmé un soupçon que j'avais en ce qu'elle a été correctement mise en boucle, mais pour une raison quelconque, il a été plusieurs fois mise en boucle que là nous clés. donc je me suis fait écho $ i pour confirmer et en fait il était en sortie 0,1,2,3 et depuis je sais qu'il n'y a que 3 clés le dernier n'a rien retourné et donc la gestion des erreurs attrapé et tué toute la boucle et pourquoi il est apparu correct lorsque la gestion des erreurs a été désactivée. La solution est en fait assez simple et il était dans la chaîne d'évaluation alors que la boucle j'avais utilisé
while($i<=$numrows)
while($i<$numrows)//this worked, the equals part of that gave it an extra loop
Créer le tableau? –
S'il vous plaît ne pas utiliser mysql_: http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php – DessDess
Suppression de la gestion des erreurs est comme un médecin ER dire à un patient "ignorer que trou de balle dans votre cœur, allez courir ce marathon de 50 milles ". –