Jump to content
  • 0

Нужна помощь с обработчиком


Reloader
 Share

Question

Сам новичок в программировании, и задача не совсем ординарная, может сможет кто мне помочь или сталкивался с подобным.

Исходные данные: Существует база SQL, в одной из ячеек которых присутствует текстовый объект (ссылка), который при использовании операции выводит ссылку на экран. Соответственно если поле пустое NULL, то ссылка не выводится.

		<?php 
echo (($unit->_url_b=="")?"":
sprintf("<a href=\"#\" onclick=\"javascript:window.open ('%s?operations=buy');return false;\" class=\"artists\">Купить места >></a>", $unit->_url_
);
?>

<?php
echo (($unit->_url_b=="")?"":
sprintf("<a href=\"#\" onclick=\"javascript:window.open ('%s?operations=order');return false;\" class=\"artists\">Забронировать места >></a>", $unit->_url_
);
?>

Задача:

Необходимо сделать так, чтобы за 2 суток /48 часов/2880 минут/172800 секунд/ ссылка переставала показываться, но оставалась в базе SQL. Пока это реализовывается вручную :(. Т.е. как я понимаю шла проверка date и time.

Вопрос: собссно как это сделать. Перечитал много, но как реализовать проверку события по времени и только после этого использовании вышеуказанного скрипта не осилил. :(

Помогите кто сталкивался.

Link to comment
Share on other sites

17 answers to this question

Recommended Posts

  • 0

За двое суток до чего? От куда отсчёт вести непонятно. Если у тебя в таблице есть поле с датой отсчёта, то без проблем

За 2 суток до начала события. Т.е. за 48 часов до точки (времени) начала события, ссылка должна перестать показываться. В таблице есть время (точка) начала события.

Я еще не совсем разобрался куда обратиться с этим вопросом. Поэтому извиняюсь если не в тот раздел написал.

Edited by Reloader
Link to comment
Share on other sites

  • 0

без разницы где время отсчитывать. Нужно знать только от чего его считать то :) и это начальная дата должна где-то сохраняться.. По этому и должно быть дополнительное поле в таблице

Link to comment
Share on other sites

  • 0

Сам новичок в программировании, и задача не совсем ординарная, может сможет кто мне помочь или сталкивался с подобным.

Исходные данные: Существует база SQL, в одной из ячеек которых присутствует текстовый объект (ссылка), который при использовании операции выводит ссылку на экран. Соответственно если поле пустое NULL, то ссылка не выводится.

Помогите кто сталкивался.

Это решается модификацией SQL-запроса к базе данных

Для этого как минимум нам нужно видеть структуру таблицы с данными

Link to comment
Share on other sites

  • 0

без разницы где время отсчитывать. Нужно знать только от чего его считать то :) и это начальная дата должна где-то сохраняться.. По этому и должно быть дополнительное поле в таблице

Тогда так. Начало спектакля (Х) в 18:30 20.10.2011. В SQL эта инфа есть. Это время (date, time) можно считать эталонным (абсолютным), от которого отталкиваемся. Каким образом реализовать чтобы скрипт (код представленный выше) выполнялся до date, time - 172800 секунд? А после соответственно убирался, либо переставал выполняться.

Edited by Reloader
Link to comment
Share on other sites

  • 0

Всё равно не понятно как у тебя хранится дата-время.. нужен дамп таблицы

но вот пример как показать данные за последние 2 дня (данные хранятся в поле data_time в формате datetime)

$time = 2 * 24 * 60 * 60;
$time = "SELECT .........
WHERE
UNIX_TIMESTAMP(CURRENT_TIMESTAMP)-UNIX_TIMESTAMP(data_time) <= " . $time : '';

Link to comment
Share on other sites

  • 0

Всё равно не понятно как у тебя хранится дата-время.. нужен дамп таблицы

но вот пример как показать данные за последние 2 дня (данные хранятся в поле data_time в формате datetime)

$time = 2 * 24 * 60 * 60;
$time = "SELECT .........
WHERE
UNIX_TIMESTAMP(CURRENT_TIMESTAMP)-UNIX_TIMESTAMP(data_time) <= " . $time : '';

В том то и дело что нужно не показать за последние 2 дня, а скрыть появляющуюся ссылку.

Я еще не очень хорошо пользуюсь терминами и плохо у меня получается объяснять. Поробую тогда схематично.

Есть база SQL в ней поля:

id - записи, date, time, название спектакля, _url_b и прочие столбцы с разной инфой.

Потребывалось сделать так, чтобы при выводе репертуара на месяц появлялась ссылка (текст типа www.ya.ru/idX/ берется из столбца _url_b соответсвующего id). Что и было реализовано скриптом (кодом выше).

Теперь требуется, чтобы эта ссылка исчезала за 2 суток до наступления спектакля события, но оставалась в таблице SQL.

Как то так.

Edited by Reloader
Link to comment
Share on other sites

  • 0

так тебе LunatiK показал именно код для тебя.. В моём просто поменяй знак сравнения :rolleyes: И у меня данные о дате и времени хранятся в одном поле, у тебя же в разных

Link to comment
Share on other sites

  • 0

хотя тут нужно понять что значит 2 дня :) сколько дней между 20.09.2011 23:59 и 21.09.2011 00:01? По этому наверное мой вариант точнее ;)

Ваш вариант действительно точнее, но теперь как сравнивать два поля SQL date и time описаной процедурой. Насколько я помню вроде сравниваются либо строки, либо столбцы. Или я чтото путаю? Такая задача для меня впервые так что не бейте ногами :blush:

Вот так?

$time = 172800; 
$time = "SELECT *from* table timestart /время начала/
WHERE
UNIX_TIMESTAMP(CURRENT_TIMESTAMP)-UNIX_TIMESTAMP(timestart) <= " . $time : '';

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy