不会进入fetch assoc循环

时间:2014-09-17 10:49:55

标签: php mysql

你好我试图从数据库中检索数据 我调试了everthing,它正常工作 我的问题是网站没有进入第二个循环 因为当我试图打印计数器和任何总和它给我0 他是我的代码中发生问题的一部分:

<?php
      error_reporting(0);
        require 'db/connect.php';


       $results= $db->query("SELECT * FROM instructors");
        $counter=0;
          while($row = $results->fetch_assoc()){

            $id=$row['id'];
            $query="SELECT * FROM Instructors LEFT OUTER JOIN ratings ON instructors.id=ratings.instructor Where instructors.id=".$id;
            $sum1=0;
            $sum2=0;
            $sum3=0;
            $count=0;


            if($result = $db->query($query)){
            while ($rowe = $result->fetch_assoc()) {
              $sum1+=$rowe['teaching_rating'];
              $sum2+=$rowe['marks_rating'];
              $sum3+=$rowe['help_rating'];
              $count++;
            }

             $result->free();
          }

            echo "<script> console.log('".$count."')</script>";
            $overall=(($sum1/$count)+($sum2/$count)+($sum3/$count))/3;
            $overall = floor($overall * 2) / 2;


}
          ?>

以前的方式适用于服务器,但它有上面提到的问题 以下方式完全适用于localhost,但是当我将其上传到服务器时,它会给出php错误

 while($row = $results->fetch_assoc()){

       $id=$row['id'];
        $results1=$db->query("SELECT * FROM Instructors LEFT OUTER JOIN ratings ON instructors.id=ratings.instructor Where instructors.id=". $id);
        $sum1=0;
        $sum2=0;
        $sum3=0;
        $count=0;

        while ($rowe = $results1->fetch_assoc()){

          $sum1+=$rowe['teaching_rating'];
          $sum2+=$rowe['marks_rating'];
          $sum3+=$rowe['help_rating'];
          $count++;

        }
        $overall=(($sum1/$count)+($sum2/$count)+($sum3/$count))/3;
        $overall = floor($overall * 2) / 2;

所以请帮我修一个或两个可能

2 个答案:

答案 0 :(得分:0)

尝试这样做......

$sum1=0;
$sum2=0;
$sum3=0;
$count=0;

while($row = $results->fetch_assoc()){

    $id=$row['id'];
    $query="SELECT * FROM Instructors LEFT OUTER JOIN ratings ON instructors.id=ratings.instructor Where instructors.id=".$id;

    $result = $db->query($query);

    while ($rowe = $result->fetch_assoc()) {
        $sum1+=$rowe['teaching_rating'];
        $sum2+=$rowe['marks_rating'];
        $sum3+=$rowe['help_rating'];
        $count++;
    }

    $result->free();
}
echo "<script> console.log('".$count."')</script>";
$overall=(($sum1/$count)+($sum2/$count)+($sum3/$count))/3;
$overall = floor($overall * 2) / 2;
//do something with $overall i guess

答案 1 :(得分:0)

外部查询中存在问题: SELECT * FROM教师而不是教师 本地主机工作正常的奇怪之处

但服务器不起作用 也许是因为版本号的差异