php - 具有变量函数的审查系统

标签 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>';
}
?>

最佳答案

我很难找到重复的,但我确信这是一个。您的函数没有返回任何内容,因此 $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。此外,不需要对可能是单个结果的循环。

关于php - 具有变量函数的审查系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53438761/

相关文章:

php - Laravel 工厂为字段返回 0,将数字存储在数据库中

MySQL 查询未正确偏移

MYSQL Join 3 Tables - 使用第二次连接的结果进行第三次连接

mysql - Django - 如何对主题内的视频序列进行排序?

php - Netbeans - 虚拟主机的配置

php - 函数名称必须是一个字符串(symfony/flex),因为 composer 需要但不能更新

php - Doctrine Symfony ORM 不使用 PHP 7.2 生成 MySQL UUID

mysql - 产品表数据透视标签表获取一列中的所有标签

Postman 中的 Php 连接文件错误

php - 从文件中使用 php 和 ajax 进行分页