我仍然无法使此审核系统正常运行。 我知道平均评分是3.57但是一旦我添加if()我得到的是1的输出?
// collect 5 lastest reviews for viewing
$sql = "SELECT AVG(rating) FROM reviews WHERE review_id = '$id'";
$query = mysqli_query($conn, $sql);
$AvgReview = mysqli_fetch_row($query);
// Here we have the toatal row count
$AvgReviews = $AvgReview[0];
if($AvgReviews = 1){
echo '1star';
}
//next else is new
else if($AvgReviews >= 1){
echo '2star';
}
//next else is new
else if($AvgReviews >= 2){
echo '3star';
}
//next else is new
else if($AvgReviews >= 3){
echo '4star';
}
//next else is new
else if($AvgReviews >= 4){
echo '5star';
}
答案 0 :(得分:3)
您正在获得'1star',因为您要为$ AvgReviews分配值1 更改代码以比较值。
if ($AvgReviews == 1) {
此外,您需要撤消代码,否则您最终只能获得1星或2星。 我建议改变它:
if ($AvgReviews > 4) {
echo '5star';
}
else if($AvgReviews > 3) {
echo '4star';
}
else if($AvgReviews > 2) {
echo '3star';
}
else if($AvgReviews > 1) {
echo '2star';
}
else {
echo '1star';
}
答案 1 :(得分:1)
这是因为您正在将1
分配给$AvgReviews
。 assignment operator(=
)获取右侧的值,将其分配给左侧的名称,然后返回已分配的值。在这种情况下,这总是1
,PHP将其解释为true
。
改为使用comparison operator:
if($AvgReviews == 1){
echo '1star';
}