Для сайта событий у меня есть база данных событий. Каждый из них имеет id , title и date (Y-m-d).
Для моей страницы я хочу:
- Эхо всех событий, происходящих сегодня
- Если сегодня нет по крайней мере 30 событий, эхо-события происходят после сегодняшнего дня (в хронологическом порядке), пока на странице не отобразится не менее 30 событий
- Включите кнопку «Еще», которая повторяет следующие 30 событий
В настоящее время я использую AJAX и - по щелчку - заменяю «More» на код «more.php». Каков наилучший способ бесконечного зацикливания, когда каждый раз, когда вы нажимаете «Еще», загружается еще 30 событий?
Вот мой соответствующий код:
<?php
// All events happening today
$result = mysql_query("SELECT * FROM events WHERE date='$today'");
while($row = mysql_fetch_array($result))
{
$title = $row['title'];
$date = $row['date'];
echo $title;
echo $date;
}
// All events for next 9 days
for ($i=1; $i<=10; $i++)
{
$eventdate = date('Y-m-d', mktime(0, 0, 0, date("m"), date("d")+$i, date("y")));
$result = mysql_query("SELECT * FROM events WHERE date='$eventdate'");
$row = mysql_fetch_array($result);
while($row = mysql_fetch_array($result))
{
$title = $row['title'];
$date = $row['date'];
echo $title;
echo $date;
}
}
?>
<!--More button-->
<script type="text/javascript"
src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("more").click(function(){
$("more").load('more.php');
});
});
</script>
<more>More</more>
и more.php :
for ($i=11; $i<=20; $i++)
{
$eventdate = date('Y-m-d', mktime(0, 0, 0, date("m"), date("d")+$i, date("y")));
$result = mysql_query("SELECT * FROM events WHERE date='$eventdate'");
$row = mysql_fetch_array($result);
while($row = mysql_fetch_array($result))
{
$title = $row['title'];
$date = $row['date'];
echo $title;
echo $date;
}
}
// Another "More" button should go here
Очевидно, я не достигаю своих целей. Прямо сейчас, это повторяет:
- Все события с сегодняшнего дня (проверьте!)
- Каждое отдельное событие на следующие 9 дней (бу)
- На дополнительной странице показаны все события за 11-20 дней (бу)
- Он не зацикливается бесконечно, то есть я не могу нажать «Еще» в more.php
Я часами пробовал онлайн-уроки и не могу понять, как этого добиться. Любые советы приветствуются. Спасибо:)