我知道这个问题在这里被问过多次,但每次都有点不同。
我的数据库中有一个表,其中包含列 entry_id(INT- Auto_Increment)
、user_id(INT)
、firstname(VARCHAR)
, lastname(VARCHAR)
和 comment(VARCHAR)
。
我的脚本几乎是我尝试创建的一个非常基本的时间表,user_id
、firstname
和 lastnames
是在用户访问时设置的剧本。所以我需要做的是检查该用户的 last 评论单元格,看看评论是“in”还是“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';
}
一些注意事项:
我已连接到数据库并进行简单查询。 用户标识 session 已设置。 在问这个问题之前,我查看了答案 here和 here .
这是 $row
正在打印的内容,请注意评论是空的,尽管我知道我在数据库中有一个值。
Array
(
[entry_id] => 4
[user_id] => 3
[comment] =>
)
最佳答案
正如您在评论中看到的那样,您尝试访问的索引不包含在您查询的索引中,这就是您得不到任何结果的原因。
$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');
你应该看到那个 undefined index comment
。
关于php - 使用 PHP 获取 MYSQL 数据库表中的最后一个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25829052/