в то время как если цикл не выполняется должным образом - PullRequest
0 голосов
/ 07 ноября 2011

Может кто-нибудь помочь мне со следующим кодом?Вывод работает нормально, начиная с тега "Categories", но цикл if возвращает только последнюю строку из БД.

$strXML = "<chart> \n";


$strQuery = "select inc_type, sum(num_of_occur) as cnt from inc_detail
group by inc_type";

$query2 = mysql_query($strQuery); //call string query

$strCategories = "<categories>\n"; //create categories
while ($cat = mysql_fetch_array($query2))
{
$strCategories .= "<category label='" . $cat['inc_type'] . "' /> \n"; //display categories
};
$strCategories .= "</categories> \n";

$strQuery2 = "select agency, inc_type, sum(num_of_occur) as cnt from inc_detail group  by inc_type, agency order by agency";
$query3 = mysql_query($strQuery2); //call string query
$agency = null;
while ($ds = mysql_fetch_array($query3))
{
    if( $ds['agency'] != $agency )
  {
    $K5 = "<dataset seriesName='" . $ds['agency'] . "' /> \n"; //create dataset
    $agency = $ds['agency'];
  }
    $K5 .= "<set value='" . $ds['cnt'] . "' /> \n"; //display value of dataset
    $K5 .= "</dataset> \n";
}


$strXML .= $strCategories . $K5 . "</chart>"; //end of XML


echo $strXML;

Ответы [ 2 ]

4 голосов
/ 07 ноября 2011

Проблема здесь:

$K5 = "<dataset seriesName ...

Вы переписываете $ K5 каждый цикл итерации.Предлагаемое решение:

$K5 = "";
while ( ...
...
  $K5 .= "<dataset seriesName ...
0 голосов
/ 10 ноября 2011

Наконец-то все заработало.Для всех, кто интересуется, это php-файл fusionchart, собирающий данные mysql для многосерийной гистограммы.Ниже мой новый код:

$strXML = "<chart labelDisplay='Rotate' slantLabels='1' caption='Test' subCaption='By Quantity' decimalPrecision='0' showValues='0' showNames='1' numberSuffix=' Incidents'  formatNumberScale='10'>";

$strQuery = "select inc_type, sum(num_of_occur) as cnt from inc_detail
group by inc_type";

$query2 = mysql_query($strQuery); //call string query

$strCategories = "<categories>"; //create categories
while ($cat = mysql_fetch_array($query2))
{
$strCategories .= "<category label='" . $cat['inc_type'] . "' />"; //display categories
}
$strCategories .= "</categories>";

$strQuery2 = "select agency, inc_type, sum(num_of_occur) as cnt from inc_detail group  by inc_type, agency order by agency";
$query2 = mysql_query($strQuery2); //call string query
     $K5 = $blank;
        while ($ds2 = mysql_fetch_array($query2))
        {
        $K5 .= "<dataset seriesName='" . $ds2['agency'] . "' />"; //create dataset

                 //create dataset values
                        $strQuery4 = "select inc_type, sum(num_of_occur) as cnt from inc_detail where agency = '$ds2[agency]' group by inc_type";
                        $query4 = mysql_query($strQuery4);
                        while ($ds4 = mysql_fetch_array($query4))
                        {
                           $K5 .= "<set value='" . $ds4['cnt'] . "' />"; //display value of dataset
               }
    $K5 .= "</dataset>";
    }


$strXML .= $strCategories . $K5 . "</chart>"; //end of XML
echo renderChart("fc/MSColumn3D.swf", "", $strXML, "productSales", 900, 600);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...