Я вывод данных увидел и подумал, что придется в этом цикле писать ещё один цикл для вывода записей из БД. Ведь в твоем примере мы узнаем об изменении файла именно в теле цикла... (Добавление)
Может я торможу на ночь глядя, поправь если ошибаюсь
А если скрипт уже не запускается по сетинтервалу, а ластмодифиед вдруг произошел - откуда скрипт узнает об этом?
Наверное можно написать функцию, которая будет setInterval-ом отправлять HEAD запрос и смотреть заголовки
Или проверить в if(req.readyState == 4 && req.readyState == 200) - данные на странице полюбому будут и условие будет true
Вот я не знаю как все это грамотно сделать потому и пришел сюда за помощью ) Хотелось бы получить более развернутый ответ ) Без варианта вывода цикла в цикле
DeepVarvar
Странно, я код конечно не запускал, но идею в принципе понял, просто пытался недавно написать скрипт "Кто онлайн", и что бы узнать текущую статистику постоянно приходилось обновлять файл(т.е заходить в него), ну как решение - подумал про крон...
Я так понимаю функция filemtime() позволит реализовать сказанное тобой без крона?
Так же хотелось бы получить ответ насчет реализации той идеи что я описал в своем предыдущем посте...
if ($production_title = trim((string) $_POST['production_title']))
А можно узнать почему в данном примере ты привел $_POST к строковому типу? Ведь $_POST и так всегда возвращает строковый тип данных, даже если было отправлено числовое значение.
DeepVarvar
Спасибо за ссылку, я прочитал твой пост в данной теме, я так понимаю без крона с твоим примером не обойтись? И как по мне то не очень подойдет для гостевой книги или при других задачах в боевых проектах... Информация выводится из БД, насколько я понимаю придется выполнять цикл в цикле что не есть хорошо... Хотя может я твой пост в той теме не очень хорошо понял...
Я представляю себе это приблизительно так:
В output файле проверяем через AJAX посредством HTTP методом HEAD наличие last modified на сервере, если он есть, то запускаем функцию setInterval('getResponse()', 1000);
Если нет last modified, то setInterval() не запускается, скрипт output файла не обращается к серверу.
Есть скрипт(гостевая книга), данные из которой подгружаются через AJAX. Тоесть при наличии новых сообщений на сервере, страница обновляется и выводятся новые сообщения. Вообщем у меня проблема в том, что я обращаюсь каждый раз через setInterval() к серверу каждую секунду и таким образом вывожу новые сообщения, если они есть.
Данный способ меня не устраивает тем, что когда пользователь хочет ввести новое сообщение, естественно что за секунду он его не введет, происходит повторное обращение к серверу т.к срабатывает setInterval и все, что успел ввести пользователь за эту секунду(если успел), стирается. Это одно. Во вторых не хочется загружать сервер запросами особенно когда нет обновлений.
Как можно избавиться от setInterval() и выводить данные только при обновлении информации на сервере? Подозреваю что нужно смотреть в сторону Last Modified, но как это реализовать, я не знаю. Буду рад если поможете. Использую для AJAX js, не jQuery.
Что бы вы не гадали(те, кто захочет помочь), я приведу простой пример с часиками, а вы в свою очередь если не сложно, внесите корректировки в скрипт на основе вышеуказанных вопросов, представив что данный скрипт запрашивает с сервера не текущее время, а сообщения из гостевой книги но только в случае, если были новые записи.
EuGen
charset у меня utf8 и сравнение utf8_general_ci
Обычные записи типа селект ворд фром вордс выводятся успешно, а вот при MATCH результата нет, как и ошибок. Хотя в строке $search имеется подстрока и её длина соответствует min/max лимиту той строке, которая находится в строке БД, которая в свою очередь имеет в наличии $search.
var_dump($row); возвращает false. А если выводить просто SELECT `word` FROM `words`
тогда var_dump возвращает положительный результат, который содержит в себе подстроку $search
Но если у вас все нормально работает, видимо это я что то делаю не так...
EuGen
Спасибо большое за наглядный пример! Узнал что то новое, но почему то у меня снова не работает. Пробовал с разной длиной строки, результат SHOW VARIABLES LIKE 'ft_%'; у нас с вами одинаковый.
Может ли ещё от чего нибудь так, что бы запрос прошел но результатов не было?
Если нет, то походу я где то тупанул просто... но на первый взгляд все сходится и запрос и min/max длина для запроса. Как уже сказал выше тестил с разной длиной