具有可变功能的评论系统

时间:2018-11-22 22:45:02

标签: php mysql

所以基本上,我正在尝试根据数据库保存的评分整数创建一个小东西,在其中输出星星。问题是它似乎没有将数据库中的数字I放入变量中。这是我使用的代码:

 <?php
$productID = 100;
$con = mysqli_connect("localhost", "root", "", "example");
function connect()
{
    $con = mysqli_connect("localhost", "root", "", "example");
    // Check connection
    if (mysqli_connect_errno()) {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    } else {
     return $con;
    }
}

function getStars($con)
{
    $productID = 100;
    $sql       = "SELECT rating
       FROM reviews
      -- JOIN stockitemstockgroups USING (StockItemID)
      -- JOIN stockgroups USING (StockGroupID)
       WHERE reviewID = '5'
       ";
    $result    = $con->query($sql);

    if ($con && ($result->num_rows > 0)) {
        // output data of each row
        while ($row = $result->fetch_assoc()) {
            echo $row["rating"];
        }
    } else {
        echo "error";
    }
}
$value = getStars($con);
echo $value;
for ($x = 1; $x <= $value; $x++) {
echo '<div class="rating"><span>&#9733;</span></div>';
}
?>

1 个答案:

答案 0 :(得分:0)

我很难找到一个副本,尽管我确定这是一个副本。您不会从函数中返回任何内容,因此$value没有任何值。

function getStars($con)
{
    $productID = 100;
    $sql       = "SELECT rating FROM reviews WHERE reviewID = 5";
    $result    = $con->query($sql);

    if ($result && ($result->num_rows > 0)) {
        // output data of first row
        $row = $result->fetch_assoc();
        return $row["rating"];
    } else {
        return false;
    }
}

通常,永远不要从函数中echo。另外,不需要循环就可以得出单一结果。