if (isset($_SESSION['user_tz'])) {
$posted = "CONVERT_TZ(p.posted_on, 'UTC', '{$_SESSION['user_tz']}')";
} else {
$posted = 'p.posted_on';
}
// Run the query:
$q = "SELECT t.subject, p.message, username, DATE_FORMAT($posted, '%e-%b-%y %l:%i %p') AS posted FROM threads AS t LEFT JOIN posts AS p USING (thread_id) INNER JOIN users AS u ON p.user_id = u.user_id WHERE t.thread_id = $tid ORDER BY p.posted_on ASC";
我将查询中发布的$更改为简单的“posted_on”,返回时间,我也尝试将其包装在“'和”中,但最终完全破坏了它;为了将来参考,我想知道为什么该变量没有传递给查询。这可能是非常简单的事情,我会觉得很傻,但是我会非常感激帮助。
感谢。
答案 0 :(得分:1)
NULL是isset()触发TRUE的有效值。使用unset($_SESSION['user_tz']);
答案 1 :(得分:-1)
在我看来,你编写它的方式,它是使用$ posted作为传递给date_format的值。你真正想要的是$ posted的内容,所以你需要关闭它周围的引号并将值连接到$ q字符串。