Евгений Порощай
Делаю 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(а), как разрыв строки и ругается. Замена грависа на двойные кавычки не помогает
MouseZver
google — mysql DATE_FORMAT
miketomlin
date(‘d M Y’,strtotime($date))
natdate(strtotime($date)) – см. https://php.ru/forum/posts/560078/
mkramer
А что, про экранирование апострофов и кавычек не читаем? Есть специальная комбинация в php:
PHP:
echo »’ . «««;
miketomlin
P.S. M – это сокращенное название месяца, F – полное.
Евгений Порощай
Можете носом ткунь, в то место, куда его ставить?
Drunkenmunky
$mysqli->query(«SELECT
Евгений Порощай
Только с одной стороны? С двух сторон когда поставил двойные — он мне вообще ничего не вывел.
— Добавлено —
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 — пустой
MouseZver
это важно (‘%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));’); // запрос на выборкуВывод такой:
В следующем месяце отмечают свой день рождения:
Денис Федотов, Дата рождения:
Дмитрий Силкин, Дата рождения:
Роман Гельвельчук, Дата рождения:
Александр Сердюков, Дата рождения:
Сама дата не отображается теперь
miketomlin
Ф-цию представления религия не позволяет использовать? Каждый раз при необходимости изменить формат даты будете лезть в текст запроса? Хотя с показанным кодом не мудрено
— Добавлено —
В запросе используйте либо дефолтный формат даты, либо unixtime. Нефиг в нем что-то форматировать под вывод для пользователя.
Евгений Порощай
спасибо что отправили к GOOGLE. не внимательно прочитал. DATE_FORMAT создает новое поле. А я указывал старое. Теперь всё работает. Буду работать над кодом. Спасибо за помощь ВСЕМ! Не судите строго, третий день изучаю PHP самостоятельно.
miketomlin
К чему цитирование моих слов? Я вас в гугл не посылал, а четко ответил на вопрос
— Добавлено —Если вы не понимаете даваемые вам ответы, не стесняйтесь переспрашивать. Игнор из-за непонимания – дебилизм. Удачи!
php8guru
Почитайте про класс DateTime ему можно скармливать вашу дату и с помощью метода format получать нужную