我知道这个问题在这里已被多次询问,但每个问题都有所不同。
我的数据库中有一个包含entry_id(INT- Auto_Increment)
,user_id(INT)
,firstname(VARCHAR)
,lastname(VARCHAR)
和comment(VARCHAR)
列的表格。
我的脚本几乎是我尝试创建的非常基本的时间表,用户访问脚本时会设置user_id
,firstname
和lastnames
。所以我需要做的是检查该用户的最后评论单元格,看看评论是否是"在"或" 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会话已设置。 在提出此问题之前,我查看了答案here和here。
以下是$row
正在打印的内容,请注意注释如何为空,尽管我知道数据库中有值。
Array
(
[entry_id] => 4
[user_id] => 3
[comment] =>
)
答案 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
。