PHP - Her hafta için 1 rasgele kayıt görüntüleniyor

3 Cevap php

Ben haftada dayalı bir veritabanından 1 rasgele kaydı görüntülemek istiyorum.

Ben bir yeni olmadığını belirlemek gerekir ve yeni bir hafta ise, o kaydı seçin ve yeni bir rekor görüntüler.

Ben sadece yeni kayıt oluşturmak için haftada tek bir gün kullanabilirsiniz düşünüyorum, her iki şekilde çalışır.

Gerçekten zor bir zaman ben kayıt numarasını saklamak ve birisi aynı gün tekrar ziyaret veya sayfayı yeniler zaman bir yenisini seçmek değil edeceğiz nasıl kavramsallaştırma yaşıyorum.

Herhangi bir fikir? Ben yeterince açık değildi bana bildirin.

Ayrıca, ben barındırma paylaşılan olarak cron işlere erişimi yok.

3 Cevap

Bu satır takıldığında diyor görüntülemek istediğiniz satır ve datetime / timestamp sütun kimliği içeren bir tablo oluşturun. Sonra yapmanız gereken her şeyi takıldı çünkü haftadan daha fazla ise id güncellemek için olduğunu. Ne yazık ki her istek için bu kontrolü yapmak gerekir. Eğer haftada bir kez çalışır ve tablo güncelleştiren bir cron işi yaratabileceği istemiyorsanız.

Bir komut dosyası, veritabanı üzerinde bir alana kaydettim sonra bir yer veritabanından rastgele recored seçmek var. Sonra veritabanı üzerinde yere kaydettim noktasını görüntüleyen komut dosyası var. Senaryoyu seçerek bu şekilde sadece bir kez bir cron işi olarak çalıştırmak olacaktır.

Temelde komut bir recored çeker ve ardından komut B o tablolar girişe işaret eskisinin üzerine yeni seçilen dosyayı değiştirir. Tabloları ve girdileri oluşturmak mümkün değil, sadece bir metin dosyasına komut A recored Id olarak kaydedin ve sonra onu görüntüleyen komut dosyası içine Kimliği okudum.

MySQL fonksiyonu RAND(), bir tohum değeri olarak kullanılan bir tamsayı parametre N, kabul eder. Bu, birden istekleri aynı sırayı almak için izin verir - http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_rand örneklerle bir göz alabilir. I $time Geçerli haftanın başında bir UNIX zaman damgası olurdu SELECT field_1, field_2, field_3 FROM table_name ORDER BY RAND($time) ASC LIMIT 1 gibi bir şey kullanarak denemek istiyorum.