0
對於活動網站,我有一個活動數據庫。每個人都有一個ID,標題和日期(Y-m-d)。如何按照日期順序回顯元素,直到回覆30個元素?
對於我的網頁,我想:今天
- 回聲所有事件發生今天
- 如果沒有至少30個事件,回聲事件今天后發生(按時間日期爲了),直到至少30個事件的頁面
- 上回蕩包括一個「更多」按鈕呼應未來30個事件
我目前正在使用AJAX,並且 - 點擊 - 用「more.php」代碼替換「More」。無限循環的最佳方式是什麼?每次點擊「更多」時它會加載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
很顯然,我沒有實現我的目標。現在,它呼應:
- 從今天所有事件(查看!)
- 該地未來10天,每單事件(BOO)
- 越多頁顯示了11-20天的每一個事件(噓)
- 它不會無限地循環,即,我不能點擊「更多」,在more.php
我一直在嘗試了好幾個小時的在線教程,並不能找出如何實現這個循環我想要的。任何提示都表示讚賞。謝謝:)
+1請注意,HTML中沒有''元素。她可能的意思是''。 –
Tomalak
僞編碼我猜。無論如何,這是可以理解的。 – Joseph
也許我錯過了'ORDER BY'的日期和時間'WHERE date> = today'和'LIMIT n,30'。它會自動包含今天的所有事件,最多可達30個,或者如果少了,則會包含一些'> = today'。我很困惑你的「如果只有24讓他們點擊更多」。查詢可以獲取所有可用的內容,並且AJAX每次都返回一個新的'n'開始值。 – Leigh