我有一個通知系統(PHP,MySQL-爲主),我試圖做到以下幾點:沒有任何限制的職位分組但隨後被time_sent下令 查詢通知結果限制爲5(每次迭代) 。 然後我使用ajax來顯示5個通知的下一個迭代集。分組和排序問題
基本上我需要5通知在(每套),但他們每個人的時間,如果一組涉及一個崗位:有可能是因爲想盡可能多的通知:
這是怎麼會有顯示:
- 通知有關崗位的F - 發送1天前
- 首先通知有關後ç - 派出3天前
- 二通知有關崗位ç - 發送1天前
- 第三次通知有關後Ç - 送5天前
- 第四次通知有關後Ç - 派出5天前
- 通知有關崗位Ÿ - 送出4天前
- 第一有關通知後d - 送5天前
- 二通知有關崗位d - 派出5天前
- 第三次通知有關崗位d送5天前就交Ÿ
- 通知 - 派出5天前
如果有新通知中關於後Y發出,這會很自然地調升到列表的頂部。
這是我已經開始之前,我決定實施這一組系統:
$notifications_req = mysql_query('SELECT * FROM notifications WHERE user_id = "'.$user_id.'" ORDER BY time_sent DESC LIMIT 5');
現在我迷路了,並用此組和秩序的邏輯鬥爭。
該數據庫包含課程的post_id
列。
編輯:
我結束了變化相當顯着,我想SOR通知的方式。這是我最終做到的。它可能不是最有效的,但它工作的方式我想:
<?php $notifications_all_req = mysql_query('SELECT * FROM notifications WHERE user_id = "'.$user_id.'" ORDER BY time_sent DESC'); if(mysql_num_rows($notifications_all_req) > 0){
while($row = mysql_fetch_assoc($notifications_all_req))
{
$post_req_ids[] = $row['post_id'];
}
$unique_post_ids = array_unique($post_req_ids);
foreach ($unique_post_ids as $i => $unique_post_id)
{
?>
<ul id="notifications_ul_<?php echo $i; ?>">
<?php
$notifications_req = mysql_query('SELECT * FROM notifications WHERE (user_id = "'.$user_id.'" AND post_id = "'.$unique_post_id.'") ORDER BY time_sent DESC ');
while($notification = mysql_fetch_assoc($notifications_req))
{
}
?>
</ul>
<?php
} } ?>
這樣一來,我可以控制兩個通知組(使用$i
)的限制,每個組內的,也有Ajax爲後者加載更多代碼。
來吧。多花點研究力量,你可以做得比這更好。 – Strawberry
如果你剛剛開始,現在將是一個非常好的時間去研究PDO,或者至少,mysqli_來代替這個被廢棄的方法。 – Strawberry
PDO或mysqli會迫使我改變我的整個網站。也許是下一個。 – Lois