Делаю SELECT из базы и помещаю в переменную: (Дни рождения сотрудников в следующем месяце) $result = $mysqli->query('SELECT NAME, LAST_NAME, PERSONAL_BIRTHDAY FROM b_user WHERE MONTH(PERSONAL_BIRTHDAY) = MONTH(DATE_ADD(NOW(), INTERVAL 1 MONTH));'); // запрос на выборку $title .= '<b>Уважаемые Коллеги! </b><br /> <p>В следующем месяце отмечают свой день рождения:</b><br /></p>'; while($row = $result->fetch_assoc())// получаем все строки в цикле по одной { $message .= '<p><b>'.$row['NAME']. ' '.$row['LAST_NAME'].'</b>, Дата рождения: '.$row['PERSONAL_BIRTHDAY'].'</p>';// выводим данные } Данные выводятся в таком формате: Денис Федотов, Дата рождения: 1991-02-14 Дмитрий Силкин, Дата рождения: 1984-02-19 Роман Гельвельчук, Дата рождения: 1991-02-26 Александр Сердюков, Дата рождения: 1990-02-17 Как преобразовать дату в '14 февраля 1991' в этом цикле. Или хотя бы в '14 February 1991' Всю голову сломал. Если добавляю формат даты непосредственно в SELECT: SELECT NAME, LAST_NAME, DATE_FORMAT(PERSONAL_BIRTHDAY, ('%d %M %Y')) FROM b_user WHERE MONTH(PERSONAL_BIRTHDAY) = MONTH(DATE_ADD(NOW(), INTERVAL 1 MONTH)); То PHP воспринимает грависы SELECT(а), как разрыв строки и ругается. Замена грависа на двойные кавычки не помогает
А что, про экранирование апострофов и кавычек не читаем? Есть специальная комбинация в php: PHP: echo '\'' . "\"";
Только с одной стороны? С двух сторон когда поставил двойные - он мне вообще ничего не вывел. --- Добавлено --- mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);// включаем сообщения об ошибках $mysqli = new mysqli($db_host, $db_user, $db_pass, $db_name); // коннект с сервером бд $mysqli->set_charset("utf8mb4"); // задаем кодировку $result = $mysqli->query("SELECT NAME, LAST_NAME, DATE_FORMAT(PERSONAL_BIRTHDAY, ('%d %M %Y')) FROM b_user WHERE MONTH(PERSONAL_BIRTHDAY) = MONTH(DATE_ADD(NOW(), INTERVAL 1 MONTH));"); // запрос на выборку $count = mysqli_num_rows($result); // количество строк в запросе $title .= '<b>Уважаемые Коллеги! </b><br /> <p>В следующем месяце отмечают свой день рождения:</b><br /></p>'; while($row = $result->fetch_assoc())// получаем все строки в цикле по одной { $message .= '<p><b>'.$row['NAME']. ' '.$row['LAST_NAME'].'</b>, Дата рождения: '.$row['PERSONAL_BIRTHDAY'].'</p>';// выводим данные } обернул SELECT в двойные кавычки - вывод в столбце PERSONAL_BIRTHDAY - пустой
это важно ('%d %M %Y') --- Добавлено --- ? --- Добавлено --- еще раз - google - http://old.code.mu/sql/date_format.html
Поставил тут: $result = $mysqli->query('SELECT NAME, LAST_NAME, DATE_FORMAT(PERSONAL_BIRTHDAY, (\'%d %M %Y\')) FROM b_user WHERE MONTH(PERSONAL_BIRTHDAY) = MONTH(DATE_ADD(NOW(), INTERVAL 1 MONTH));'); // запрос на выборку Вывод такой: В следующем месяце отмечают свой день рождения: Денис Федотов, Дата рождения: Дмитрий Силкин, Дата рождения: Роман Гельвельчук, Дата рождения: Александр Сердюков, Дата рождения: Сама дата не отображается теперь
Ф-цию представления религия не позволяет использовать? Каждый раз при необходимости изменить формат даты будете лезть в текст запроса? Хотя с показанным кодом не мудрено --- Добавлено --- В запросе используйте либо дефолтный формат даты, либо unixtime. Нефиг в нем что-то форматировать под вывод для пользователя.
спасибо что отправили к GOOGLE. не внимательно прочитал. DATE_FORMAT создает новое поле. А я указывал старое. Теперь всё работает. Буду работать над кодом. Спасибо за помощь ВСЕМ! Не судите строго, третий день изучаю PHP самостоятельно.
К чему цитирование моих слов? Я вас в гугл не посылал, а четко ответил на вопрос --- Добавлено --- Если вы не понимаете даваемые вам ответы, не стесняйтесь переспрашивать. Игнор из-за непонимания – дебилизм. Удачи!
Почитайте про класс DateTime ему можно скармливать вашу дату и с помощью метода format получать нужную