X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Запрос на показ баннера по времени
1putnik
1putnik
Topic Starter сообщение 1.9.2015, 23:07; Ответить: 1putnik
Сообщение #1


Привет всем мебмастерам.
Помогите решить задачку. Хочу на сайте сделать показ банеров по времени.
Делаю такой запрос:



$time = date(G);
$sql = 'SELECT * FROM banner WHERE (start <= '.$time.' AND end >= '.$time.') OR (start = 0 AND end = 0) ....';

$time - часы в формате 0-23
start - время начала показа
end - время окончания показа

Если, допустим, нужно показать баннер с 8 до 23, то всё нормально работает, с 00:00 до 8:00 баннер не показывается.
А если установить часы с 8 до 2, то баннер вообще показываться не будет.
Как сделать правильный запрос, что-бы баннер показывался с 8 утра и до 2 часов ночи, а так-же если нужно с 8 до 23.
Чуствую, что решение простое, математическое, но никак не могу решить, пробывал по всякому. Это первый вопрос.

И второй вопрос - как сделать, что-бы время $time было не серверное, а время компьютера пользователя в том же формате 0-23 и как передать это на сервер?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Info-Mans
Info-Mans
сообщение 2.9.2015, 2:01; Ответить: Info-Mans
Сообщение #2


А может попробовать с помощью switch сделать, если $time попадает в интервал, то баннер выводится, а если нет, то не выводится?

По поводу второго вопроса, на сколько я знаю браузер не передает такую информацию. Вроде бы на javascript можно реализовать, но увы пока я в нем не селен)


Сообщение отредактировал Info-Mans - 2.9.2015, 2:04
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
1putnik
1putnik
Topic Starter сообщение 2.9.2015, 11:57; Ответить: 1putnik
Сообщение #3


А как сделать интервал с 8 до 2 ? Как объяснить серверу, что 12, например, больше 8 и меньше 2 (8 < 12 и 12 < 2) ? 
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Info-Mans
Info-Mans
сообщение 2.9.2015, 12:26; Ответить: Info-Mans
Сообщение #4


1putnik, можно такой вариант 

switch($time){
case 7:
case 6:
case 5:
case 4:
case 3:
case 2:
echo "Не выполняем"; break;
default:
echo "Выполняем запрос";
}



Сообщение отредактировал Info-Mans - 2.9.2015, 12:36
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
1putnik
1putnik
Topic Starter сообщение 2.9.2015, 17:30; Ответить: 1putnik
Сообщение #5


Дак это же получится условие для показа одного баннера. А у меня их несколько. У всех разное время.
И при добавлении, через форму выставляется время начала и окончания показа.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
1putnik
1putnik
Topic Starter сообщение 29.9.2015, 14:10; Ответить: 1putnik
Сообщение #6


Всё!!! Решил первую задачку.
Составил таки правильный запрос.



$time = date(G);
$sql = 'SELECT * FROM banner WHERE (start > end AND (start <= '.$time.' OR '.$time.' < end)) OR (start < end AND (start <= '.$time.' AND '.$time.' < end)) OR (start = 0 AND end = 0) ....';

Т. е. выполняется то или иное условие, в зависимости от того, что start > end или start < end.
Как и предпологал - решение простое.
Теперь осталось решить вторую задачку со временем компьютера пользователя.


Сообщение отредактировал 1putnik - 29.9.2015, 14:14
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
1putnik
1putnik
Topic Starter сообщение 1.10.2015, 12:26; Ответить: 1putnik
Сообщение #7


Вот и вторую задачку решил. С помощью java-скрипта определяется время компьютера пользователя и с помощью GET-запроса передает в PHP-файл script.php переменную $time.
Этот код нужно поставить на ту страницу, где должен показываться баннер:



<script type="text/javascript">
var h = new Date();
var ch = (h.getHours());
document.write('<sc'+'ript src="script.php?time='+ch+'"></sc'+'ript>');
</script>

А это нужно вставить в файл script.php, где делается запрос к БД:



$time = $_GET['time']; //это вместо $time = date(G);
### здесь запрос к БД ###
echo "document.write('<img src=".$a[banner].">');";

Это конечно не совсем точно как у меня, но понимающий исправит, если захочет воспользоваться.


Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


Сообщение отредактировал 1putnik - 1.10.2015, 12:57
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Запрос на бесплатные полезности
7 Tia2 1843 23.3.2024, 11:27
автор: Alexand3r
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыСколько времени нужно для раскачки нового сайта?
29 metvekot 7869 8.3.2024, 15:41
автор: malamut
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыAdvertur - оплата не только за клики, но и за показ рекламы
13 Sosnovskij 4896 10.1.2022, 22:07
автор: Scotty
Открытая тема (нет новых ответов) Продам скрипт rtb exchange suite - система перепродажи трафика dsp/ssp в реальном времени.
4 buypushplatform 4145 12.10.2021, 15:29
автор: ULUD
Открытая тема (нет новых ответов) Рекомендую: размещение ссылки, статьи или баннера на трастовом СМИ с трафиком 100 тыс. уников в сутки
2 rumblade 5301 27.3.2020, 10:26
автор: tehno_music


 



RSS Текстовая версия Сейчас: 29.3.2024, 11:52
Дизайн