как лучше сделать?поставить крон на выполнение каждый час, в панели управления давать задать время отчета в часах. Смотреть примеры cli php скриптов.
подходит ли php вообще для решения моей задачи, или лучше что-то другое? Может вообще не стоит использовать веб-технологии?У вас архитектура клиент-сервер, веб направление ее частный случай, так что это неверный вопрос. А от выбора другого языка много не поменяется, если вы лучше знаете какой-то конкретный альтернативный язык с подходящим профилем (ява, питон, нода...) пишите на нем. Разницы особо нет. Но пхп подходит, я бы сказал обычно это язык первого выбора в таких проектах.
А писать демон на php везде отговаривают, мол память ест.Писать своих демонов на любом языке задача не тривиальная, пхп кстати при грамотном подходе (как и на других языках) ничего лишнего не ест, да и эта проблема решается перезапуском демона раз в сутки. Просто тут задача не требует этого, достаточно штатных средств системы.
header('Content-Type: text/html; charset=UTF-8');
header('Expires: Mon, 30 Jul 1997 05:00:00 GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', FALSE);
header('Pragma: no-cache');
header('Content-transfer-encoding: binary');
header('Content-Disposition: attachment; filename=мой_русский_пдф.pdf');
header('Content-Type: application/pdf');
echo $pdfcontent;
if($result == 'true') {...
$bd_insert_query = "INSERT INTO " . DB_TABLE . " (mailbox) VALUES ('" . $MailBox . "')";
var_dump($bd_insert_query); // копируем и вставляем в базу руками, смотрим ответ, возможно понимаем что запрос кривой.
$result = mysqli_query($bd_link, $bd_insert_query);
var_dump($result); // смотрим что на самом деле произошло в запросе.
вообще треш и угар, так делать не нужно. Тем более если поле id автоинкрементное. Тем более с ошибкой в полях ввода.$bd_insert_query = "INSERT INTO " . DB_TABLE . " ('ID', 'mailbox') VALUES ('LAST_INSERT_ID(), " . $MailBox . "')";
SELECT f.* , sl.id as subscribe
FROM `films` f
LEFT JOIN `see_later` sl
ON sl.film_id = f.id
WHERE sl.user_id = :user_id //подставить ид пользователя
ORDER BY `year` DESC LIMIT 10