PHP返回值为1

时间:2014-12-29 21:49:37

标签: php

我仍然无法使此审核系统正常运行。 我知道平均评分是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';
}  

2 个答案:

答案 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分配给$AvgReviewsassignment operator=)获取右侧的值,将其分配给左侧的名称,然后返回已分配的值。在这种情况下,这总是1,PHP将其解释为true

改为使用comparison operator

if($AvgReviews == 1){
    echo '1star';
}