Консультация № 181175
09.12.2010, 10:52
0.00 руб.
0 9 2
Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос:
Есть база данных "sinside-advertising", в ней таблица "action-cinema" - в этой таблице будет списки кино-новинок...
Задача - таблица action-cinema, есть запись фильм1, его начинают показывать 6-го ноября а заканчивают 22-го ноября, сегодня 18-ое ноября - запрос выводит результат "фильм1", а 23-го ноября уже не выводит...
Я в PHP и MySQL профан, если можете - более подробно ответить на мой вопрос, пожалуйста.
Заранее Вам благодарен.

Обсуждение

давно
Профессионал
848
1596
09.12.2010, 11:19
общий
это ответ
Здравствуйте, Уманский Денис!
Допустим, что в таблице "action-cinema" есть поля film, где описывается название фильма и поля с форматами даты startdate и enddate в которых указаны даты начала показа и дата окончания тогда запрос
Код:
SELECT * FROM action-cinema WHERE (startdate <= Curdate()) AND (enddate >= Curdate())

выведет список фильмов которые будут показывать сегодня.
5
Благодарю за ответ, но у меня что-то не получается. :(
Неизвестный
09.12.2010, 13:38
общий
<?
$a = mysql_connect("localhost", "root", "");
mysql_select_db("sinside-advertising");
mysql_query("SET NAMES 'utf8'");

$query = "SELECT * FROM `action-cinema` WHERE (film_date_in <= Curdate()) AND (film_date_out >= Curdate())";
$result = mysql_query($query);
while ($row = mysql_fetch_row($result))
{
echo "<li><a href="news_page.php?id=$row[id]" class='rollovert'>$row[1]</a></li>\n";
}
?>
Я создал в базе два поля film_date_in и film_date_in film_date_out (тип Date), выставил в них время... Но пишет ошибку...
Если возможно - напишите мне полностью код, так как я в этом деле - "бум бум"... Пожалуйста.
Заранее Вас благодарю.
Неизвестный
09.12.2010, 13:55
общий
это ответ
Здравствуйте, Уманский Денис!
Я в MySQL тоже не силен, но по типу MS SQL, если в таблице action-cinema будет хотя бы три поля фильм, егоначинаютпоказвыть (на латыне), заканчивают, где два последние по типу дата/время, то такой запрос при заполненных полях вернет то, что нужно. Где Date() - это функция системной даты.

Select фильм from action-cinema
where action-cinema.егоначинаютпоказывать => Date() and action-cinema.заканчивают <= Date();
5
Не до конца понял...<br>Если не лень не могли бы этот код переделать? Пожалуйста.<br><br><?<br>$a = mysql_connect("localhost", "root", ""); <br>mysql_select_db("sinside-advertising");<br>mysql_query("SET NAMES 'utf8'"); <br>$query = "SELECT * FROM action-cinema WHERE (film_date_in <= Curdate()) AND (film_date_out >= Curdate())";<br>$result = mysql_query($query);<br>while ($row = mysql_fetch_row($result))<br>{ <br>echo "$row[1]";<br>}<br>?><br>
давно
Профессионал
848
1596
09.12.2010, 14:18
общий
сорри, не нужно в запросе название таблицы в апострофы заключать, запрос делал в phpMyAdmin там работало, в php нет
$query = "SELECT * FROM action-cinema WHERE (film_date_in <= Curdate()) AND (film_date_out >= Curdate())";
попробуйте.
Неизвестный
09.12.2010, 15:07
общий
Неа :(
Выводит ошибку: Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in D:\xampp\htdocs\sinside\beta_work.php on line 20

<?
$a = mysql_connect("localhost", "root", "");
mysql_select_db("sinside-advertising");
mysql_query("SET NAMES 'utf8'");
$query = "SELECT * FROM action-cinema WHERE (film_date_in <= Curdate()) AND (film_date_out >= Curdate())";
$result = mysql_query($query);
while ($row = mysql_fetch_row($result))
{
echo "$row[1]";
}
?>
давно
Профессионал
848
1596
09.12.2010, 15:35
общий
у меня ваш код работает.
могу посоветовать проверить точно ли поля в формате Date, и какое значение в полях находится. У меня например в таком формате 2010-11-06
Неизвестный
09.12.2010, 16:02
общий
Х_о
Формат - Date, 2010-12-02...
Аааа....
Всё заработала :)

Спасибки... Проблема была в том, что в этом запросе SELECT * FROM action-cinema WHERE (film_date_in <= Curdate()) AND (film_date_out >= Curdate())
action-cinema должен быть с нижним дефисом action_cinema...

Спасибо ВАМ большое!!!! УРА!!!
давно
Профессионал
848
1596
09.12.2010, 16:06
общий
гггг :-)
бывает
Неизвестный
09.12.2010, 16:25
общий
Благодарю Вас. Еще спишемся по поводу других вопросов :)
Форма ответа