Переменная в SQL-запросе не работает? - PullRequest
0 голосов
/ 16 апреля 2011
    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";

Я изменил $ posts в запросе на обычный "posts_on", который возвращает время, я также попытался обернуть его в '' и "", но в итоге он полностью сломался; для дальнейшего использования я хотел бы знать, почему эта переменная не передается в запрос. Возможно, это что-то действительно простое, и я буду чувствовать себя глупо, но помощь будет принята с благодарностью.

Спасибо.

Ответы [ 2 ]

1 голос
/ 16 апреля 2011

NULL - допустимое значение для isset () для запуска TRUE.Используйте unset($_SESSION['user_tz']);

0 голосов
/ 16 апреля 2011

Мне кажется, что, как вы написали, он использует $ posts в качестве значения для передачи в date_format. Что вам действительно нужно, так это содержимое $ posts, поэтому вам нужно закрыть кавычки вокруг него и объединить значение в строку $ q.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...