回显最后3个数据库插入

时间:2015-05-21 14:13:25

标签: php while-loop

我试图回显最后3个数据库插入但是当我使用“DESC”命令时它会给我一个错误

“致命错误:在第25行的C:\ xampp \ htdocs \ sitename \ test.php中调用boolean上的成员函数fetch_assoc()”

这是我的代码

<?php

$db = new mysqli('localhost', 'root', '', 'db');

    if (isset($_GET['id'])) {
        $weeklymenu = $_GET['id'];
        $sql_menu = "SELECT * FROM db_weeklymenu WHERE ID = '$weeklymenu' DESC LIMIT 3";
        $result_menu = $db->query($sql_menu);
        $row_menu = $result_menu->fetch_assoc();
    }
    else{
        $sql_menu = "SELECT * FROM db_weeklymenu DESC LIMIT 3";
        $result_menu = $db->query($sql_menu);
    }

?>

<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<?php
    while ( $row_menu = $result_menu->fetch_assoc() ) { 
?>
    <a href="weeklymenu?id=<?=$row_menu['ID'];?>"><?=$row_menu['weeklymenu'];?></a>
<?php
    }
?>
</body>
</html>

任何人都知道如何解决这个问题? :)

感谢。

2 个答案:

答案 0 :(得分:1)

你得到的错误是因为retch_assoc()函数期望MySQL结果集资源,但是没有得到它。它的出现是因为您的查询无效;因为你不能单独使用DESC,所以需要使用&#34;命令。声明,所以做类似的事情:

SELECT * FROM db_weeklymenu ORDER BY ID DESC LIMIT 3

答案 1 :(得分:0)

您的SQL查询无效。您需要订单子句。

SELECT * FROM db_weeklymenu ORDER BY id DESC LIMIT 3

修改 删除此行: $ row_menu = $ result_menu-&gt; fetch_assoc();     

$db = new mysqli('localhost', 'root', '', 'db');

    if (isset($_GET['id'])) {
        $weeklymenu = $_GET['id'];
        $sql_menu = "SELECT * FROM db_weeklymenu WHERE ID = '$weeklymenu' ORDER BY id DESC LIMIT 3";
        $result_menu = $db->query($sql_menu);
    }
    else{
        $sql_menu = "SELECT * FROM db_weeklymenu ORDER BY id DESC LIMIT 3";
        $result_menu = $db->query($sql_menu);
    }

?>