使用PHP获取MYSQL数据库表中的最后一个条目

时间:2014-09-14 00:34:42

标签: php mysql sql database

我知道这个问题在这里已被多次询问,但每个问题都有所不同。

我的数据库中有一个包含entry_id(INT- Auto_Increment)user_id(INT)firstname(VARCHAR)lastname(VARCHAR)comment(VARCHAR)列的表格。

我的脚本几乎是我尝试创建的非常基本的时间表,用户访问脚本时会设置user_idfirstnamelastnames。所以我需要做的是检查该用户的最后评论单元格,看看评论是否是"在"或" out"。

每当我尝试构建我的查询并检查该用户字段中的最后一条评论是否进入时,我访问我的脚本并且它没有打印评论,我做错了什么?

$userid = $_SESSION['user_id'];

    $query = mysqli_query($mysqli, "SELECT entry_id, user_id FROM timesheet WHERE user_id = '$userid' ORDER BY entry_id DESC LIMIT 1") or die('Error: ' . mysqli_error($mysqli));

    if(mysqli_num_rows($query)>0){

     while ($row = mysqli_fetch_array($query, MYSQL_ASSOC)) {
        echo '<pre>';
        print_r($row);
        echo '</pre>';

        $clock = $row['comment'];

        echo $clock . ' Last entry';

    } 

几个笔记:

我已连接到数据库并获得一个简单的查询。 userid会话已设置。 在提出此问题之前,我查看了答案herehere

以下是$row正在打印的内容,请注意注释如何为空,尽管我知道数据库中有值。

Array
(
    [entry_id] => 4
    [user_id] => 3
    [comment] => 
)

1 个答案:

答案 0 :(得分:2)

正如您在评论中看到的那样,您尝试访问的索引不包含在您查询的索引中,这就是您没有得到任何结果的原因。

$userid = $_SESSION['user_id'];
$query = mysqli_query($mysqli, 
    "SELECT 
        entry_id, 
        user_id,

        comment <-- you're trying to access comments, but didn't include that column in the query

        FROM timesheet 

        WHERE user_id = '$userid' ORDER BY entry_id DESC LIMIT 1") 

or die('Error: ' . mysqli_error($mysqli));

if(mysqli_num_rows($query) > 0){

    while ($row = mysqli_fetch_assoc($query)) {

        echo $row['comment'] . ' Last entry <br/>';
    }
}

如果您已启用错误报告:

error_reporting(E_ALL); 
ini_set('display_errors', '1');

你应该看到未定义的索引comment