2010-11-16 39 views
5

Tôi có tìm kiếm nâng cao trên trang web của mình, bây giờ cách hoạt động của nó như sau. Khi tìm kiếm được thực hiện, kết quả ngẫu nhiên xuất hiện trên trang nội dung, bây giờ trang này cũng bao gồm phân trang, do đó, vấn đề của tôi là mỗi khi khách truy cập vào trang đầu tiên, kết quả khác nhau xuất hiện. Có thể sử dụng phân trang với điều này hay không, hoặc sẽ luôn là ngẫu nhiên.Giá trị ngẫu nhiên trong truy vấn MySql với pagination

Tôi đang sử dụng một truy vấn như

SELECT * FROM table ORDER BY RAND() LIMIT 0,20; 

Trả lời

12

Bạn nên sử dụng một hạt giống cho MySQL RAND để có được kết quả phù hợp. Trong PHP bạn làm một

$paginationRandSeed = $_GET['paginationRandSeed']? 
    ((int) $_GET['paginationRandSeed']): 
    rand() 
; 

và MySQL bạn sử dụng hạt giống

"SELECT * FROM table ORDER BY RAND(".$paginationRandSeed.") LIMIT 0,20" 

Tất nhiên bạn sẽ cần phải tuyên truyền hạt giống ban đầu trong các yêu cầu trang.

Chúc may mắn,
Alin

+0

Thanx đã chỉ cho tôi đi đúng hướng, giải pháp của bạn làm việc cho tôi một cách hoàn hảo – Roland

+0

điểm tuyệt vời để nghiên cứu nhiều hơn cho RAND này() chức năng trong tài liệu MySQL. Tôi có một số danh sách các thuộc tính cung cấp trên trang web khách hàng của tôi, tôi đã thêm '$ seed = date ('jnY');' – kkatusic

Các vấn đề liên quan