2013-04-20 24 views
-1

我是一名php初学者,并且遇到问题,为什么我的代码一直在抛出解析器错误。希望你们能帮助我。php解析器错误我无法解决

的错误出现在代码的结尾,是 “意外的,期待的同时(T_WHILE)” 的代码是在这里...

<html> 
    <?php 
    $db = new PDO('mysql:host=localhost;dbname=testit;charset=UTF-8', 'testit', 'testit', array(PDO::ATTR_EMULATE_PREPARES => false, 
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); 

    $stmt = $db->query("SELECT * FROM TestTable"); 

    $amdata = array(); 
    $ctrinner = 0; 
    $ctrouter = -1; 
    $prevweek = "9999"; 


    while($row = $stmt->fetch(PDO::FETCH_ASSOC)) do { 
     if ($prevweek !== $row['WeekNumber']) { 
      $ctrouter++; 
      $ctrinner = 0; 
      $amdata[$ctrouter][$ctrinner] = 'week: "'+$row['WeekNumber']+'"'; 
     } 
     $ctrinner++; 
     $amdata[$ctrouter][$ctrinner] = $row['XAxisCategory']+': '+$row['YAxisValue']; 
     $prevweek = $row['WeekNumber']; 
    } 
    // Whatever comes aftert this line throws a php error 'Unexpected <whatever I put there>, expecting while (T_WHILE)....' 
    // Even if I put nothing it complains about Unexpected '?>' expecting while (T_WHILE) ?> 
?> 
</html> 

回答

2

您do-while循环是错误的。

一个do-while循环的样子:

do { 
    /* loop body */ 
} while (/* condition */); 

但在你的特殊情况下,我会简单地忽略do关键字:

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
    /* loop body */ 
}