2012-01-04 20 views
1

我遇到问题从我的数据库使用where子句与for循环变量检索数据。此代码当前可以从数据库中检索数据,但是从数据库中检索到的值存储。在for循环中的数字1仍然很好。但是当它进入下一个。收集的数据是1和2的组合。当它最终到达循环结尾时,显示所有数据。 哪个代码的一部分,必须进行编辑,以数据的显示改变到非累积PHP SQL其中声明与循环变量

<?php 

$sectorcount = $row_SectorCount['COUNT(*)']; 
//number of rows in database 
$spendingname= array(); 
$spendingpercent= array(); 
$spendingid= array(); 

?> 
// Add some data to the details pie chart 
options_detail_1.series.push({ name: 'Tax Spending Detail', data: [] }); 

$(document).ready(function() { 
chart_main = new Highcharts.Chart(options_main); 
chart_detail_1 = new Highcharts.Chart(options_detail_1); 
}) 

function push_pie_detail(sectorid) { 
switch(sectorid) 
{ 
<?php 

for ($i=1; $i<=$sectorcount; $i++) 
    { 
    echo "case 'sector".$i."':" , 
      "setTimeout", "(" , '"chart_detail_1.series[0].remove(false)", 1000);' , 
      "chart_detail_1.addSeries(options_detail_1, false);" , 
      "chart_detail_1.series[1].setData(["; 

      mysql_select_db($database_conn2, $conn2); 
      $query_Spending = "SELECT CONCAT(spending.SectorID,  spending.ExpenditureID) AS 'SpendingID', 
      expenditure.ExpenditureName, spending.SpendingPercent, spending.SectorID 
      FROM spending 
      INNER JOIN expenditure ON spending.ExpenditureID = expenditure.ExpenditureID 
      WHERE spending.SectorID = '.$i.'"; 
      $Spending = mysql_query($query_Spending, $conn2) or die(mysql_error()); 
      $totalRows_Spending = mysql_num_rows($Spending); 
      while($row_Spending = mysql_fetch_assoc($Spending)) 
      { 
      $spendingname[] = $row_Spending['ExpenditureName']; 
      $spendingpercent[] = $row_Spending['SpendingPercent']; 
      $spendingid[]= $row_Spending['SpendingID']; 
      } 
      mysql_free_result($Spending); 

      $a = 0; 

      foreach ($spendingid as $sgi => $sgid) 
      { 
      if ($a > 0) echo ', '; // add the comma 

      echo "{ 
       name: '$spendingname[$sgi]', 
       y: ". $spendingpercent[$sgi] * $tax .", 
       id: ' $sgid', 
        }"; 

      $a++; 
      } 

      echo "], false);" , 
        "chart_detail_1.redraw();", 
        "break;"; 
      }  


      ?> 
      default: 
      break; 
     } 

}

回答

1

你需要用你的变量“X”单引号的where子句中,否则会觉得你的意思是ID = true,这对所有的人都是如此=)我最近

有同样的问题编辑:所以,而不是说花的地方.SectorID = $我,你应该有'somevalue',只是做一个新的变量$ example =“'”。 $ i。 “'”,并使用该变量在WHERE子句中

我写了一个函数,它的文本并把它封装在单引号只是针对这种情况

+0

你如何设法解决它?即时通讯真的很新的PHP请指导我:D – 2012-01-04 02:39:22

+0

其不工作:(饼图即时尝试显示仍然显示几乎所有累计 – 2012-01-04 02:53:02

+0

然后我会指出一个问题与饼图,而不是SQL或循环,我还没有饼图功能的知识 – 2012-01-04 03:03:34

0

移动在循环内部的$spendingname = array();和其它阵列定义。

+0

我试着移动它,但它不工作 – 2012-01-04 01:29:46