Bir web sayfasında kullanmak için rasgele kayıtları seçme

3 Cevap php

HI Beyler,

I own a website I have a section called "mobile Section" this section contain many catagories (Nameoftheobject + a picture + little description and a download link) Now the section is considered as an internal section. I want to view random records from that section on the first page (I dont know Like RSS but not Rss) showing the name of the object and to which subcategories it belong and its picture if possible. I hope any one understand what I'm trying to say.

This is my website HERE and this the link of the internal page HERE check the block that say Mobile Section Its kinda a mess. is there any script or a tech to view it in a proper way to view it show me examples if possible

Ben php ve MySQL kullanarak ediyorum

Önceden Dan

3 Cevap

Ne yaparsanız yapın, MySQL RAND () ORDER BY kullanmayın. Bu ölçek olmaz. Evet, bu veri seti küçük olduğu için satır küçük bir sayı için para cezası çalışmak gibi görünüyor olacaktır. RAND () ORDER BY büyük tablo uzun sorgu alacak olduğu anlamına gelir, tam tablo taraması gerektirir. Bu "Gee, et yavaş gibi görünüyor" ... ve yavaş ... ve daha yavaş gibi kendini gösterecektir ...

Bir birincil anahtar olarak bir tamsayı ve eylemler olur, bir id sütunu var ise, size aslında bir dizin kullanılarak çünkü çok daha hızlı olacak sorgulamadan önce PHP maksimum değer yaratacaktır.

Örnek gibi bir şey olabilir:

$random_row_id = rand(1, $max);

ve sonra ...

SELECT * FROM foo WHERE id = $random_row_id

Sen $ max almak için nasıl anlamaya gerekir, ama büyük olasılıkla sadece son satır id yakalayabilir.

Burada dikkatli bir kelime tablodan kayıtları sildikten eğer artık yok, bir satır için isteyebilir "delik" olacak olmasıdır. Eğer bir eşleşme bulmak kadar bu durumda sadece sondalama tutmak olabilir - hala tam tablo taraması daha hızlı şekilde olacak.

Bu fikir tür David Thomas Garcia çaldı. Neler yapabileceğini bir ürünün görüşlerini takip ediyorum (veya bu kaçınmak ve sadece alımları takip olabilir) bir alanı uygulamak sizin veritabanı olduğunu ve "En Çok Satanlar" veya "Sıcak olarak veritabanından öğeleri seçebilirsiniz Ürünler "sonra sitenizde görüntülemek için.

Eğer gerçekten rasgele olmak ister misiniz? Ana sayfalarında en popüler olması ve ziyaretçiler için daha yararlı ve bilgilendirici olduğu ortaya dönüşebilir Onun güzel.

O dedi, bu bunu yapmak için Microsoft SQL bir yöntem yazmak gerçekten çok kolay olurdu:

SELECT TOP 1 Name, Picture, Description, Link
FROM Software
WHERE Category = 'Mobile Section'
ORDER BY NEWID()

Eğer Microsoft SQL kullanarak değil, burada birçok veritabanları için site with random selectors olduğunu.