首页 > 解决方案 > 按类获取用户数据信息(php)

问题描述

我想从 db 中获取一行并显示在我的页面中。以下代码不起作用,我的浏览器挂起。而且我不知道如何解决它。请帮我。

班级 :

public function get_calculate($id)
{
    if ($id != 0) {
        $stmt_select_calculate = $this->connect()->prepare('SELECT analix_calculate.title,analix_calculate.basis FROM analix_calculate where analix_calculate.id=:calculate_id AND analix_calculate.is_active=1;');
        $stmt_select_calculate->bindValue(':calculate_id', $id, PDO::PARAM_STR);
    } else {
        $stmt_select_calculate = $this->connect()->prepare('SELECT analix_calculate.title,analix_calculate.basis FROM analix_calculate where analix_calculate.is_active=1;');
    }
    return $stmt_select_calculate->execute();
}

索引.php:

<?php
include("../db/Database.php");
$databse = new Database();
$menu = $databse->get_calculate(0);
while ($row_select_calculate = $menu) {
?>
    <li>
        <a href="#0">
        <i class="fa fa-home" aria-hidden="true"></i><?php echo $row_select_calculate['title']?>
        </a>
    </li>
<?php
}
?>

标签: php

解决方案


首先,$stmt_select_calculate->execute(); 返回布尔值。你不能迭代 bool 值,这很明显。因此,您应该返回语句对象本身:

public function get_calculate($id)
{
    if ($id != 0) {
        $stmt_select_calculate = $this->connect()->prepare('SELECT analix_calculate.title,analix_calculate.basis FROM analix_calculate where analix_calculate.id=:calculate_id AND analix_calculate.is_active=1;');
        $stmt_select_calculate->bindValue(':calculate_id', $id, PDO::PARAM_STR);
    } else {
        $stmt_select_calculate = $this->connect()->prepare('SELECT analix_calculate.title,analix_calculate.basis FROM analix_calculate where analix_calculate.is_active=1;');
    }
    $stmt_select_calculate->execute();
    return $stmt_select_calculate;
}

index.php你应该fetch数据:

$menu_stmt = $databse->get_calculate(0);
while ($row = $menu_stmt->fetch()) {
?>
    <li>
        <a href="#0">
        <i class="fa fa-home" aria-hidden="true"></i><?php echo $row['title']?>
        </a>
    </li>
<?php
}

推荐阅读