Türkiye'nin En Eski Webmaster Forumu İyinet'e Hoşgeldiniz!

Kayıt Ol

Rand ile alınan verilere alternatif var mı ?

Angelo

0
Onaylı Üye
Üye
Katılım
13 Aralık 2004
Mesajlar
9,603
Açılan Konu
164
Tepki puanı
106
Konum
AZ
3000 ayrı dosya yaratarak. :)
 

OsmanAtabey

0
Onaylı Üye
Üye
Katılım
26 Mart 2005
Mesajlar
922
Açılan Konu
52
Tepki puanı
4
Angelo :D Bayağı iyiymiş bu file cache sistemi
 

Invictus

0
Onaylı Üye
Üye
Katılım
4 Şubat 2010
Mesajlar
328
Açılan Konu
5
Tepki puanı
8
Konum
istanbul
Sanıyorum o tür pek de zor olmaz. Devamlı sorgu yapıp alınan veriyi dosya içine kaydettikten sonra ilgili bölümde göstermek. Şimdilik 3000 'e yakın sayfa var ve her birinin ayrı random üretmesi şart. Bunu nasıl sağlayabilirim file cache sistemi ile ?

mesela 3000 bin video ve 100.000 etiket olan bir siteyi ele alalım;
her video sayfasında solda 100 tane rastgele etiket gözükecekse eğer video izleme sayfasının file cache için kodu yazarsın/koyarsın. her video için sayfaya girildiğinde 1 kere 100 tane etiket random olarak çekilir ve o sayfanın tümü cachelenip cache klasörüne kaydedilir. (her sayfada farklı 100 etiket olmuş oldu). belirttiğin süre boyunca da cache dosyasından okur. mesela cache dosyasının oluşturulma süresi 1 saati geçmişse onu silip yeniden etiketleri random olarak çekersin ve cache dosyasını yeniden oluşturursun. bu şekilde 1M hitin de olsa her video sayfası için sadece 1 saat aralıklarla random sorgu olur.
 

OsmanAtabey

0
Onaylı Üye
Üye
Katılım
26 Mart 2005
Mesajlar
922
Açılan Konu
52
Tepki puanı
4
Invictus evet detaylı bir şekilde anlatmışsın sağolasın. Bu sistemi biraz daha değiştirip kelimeleri parçalara ayırdıktan sonra her sayfa için random kelimeler üretebilirim bu şekilde.
 

OsmanAtabey

0
Onaylı Üye
Üye
Katılım
26 Mart 2005
Mesajlar
922
Açılan Konu
52
Tepki puanı
4
metadige Verdiğin bu örneği; içinde 150 bin kayıt olan tabloda yeni deneme şansım oldu ve çok hızlı bir şekilde çalışıyor teşekkürler.

O zaman php ile random 15 sayı seçip sqlden 10 tanesini almak daha mantıklı olabilir gibi. Örneğin:

PHP:
<?php

$al = mysql_query('select count(sutun_id) as say from tablon');
$kac = mysql_fetch_assoc($al);
$kac = $kac['say'];
for($i=0;$i<15;$i++){
$random[] = rand(1,$kac); 
}
sort($random,SORT_NUMERIC );
$random = implode(',',$random);
$query = 'select * from tablon where sutun_id in ('.$random.') limit 10';

?>
 

OsmanAtabey

0
Onaylı Üye
Üye
Katılım
26 Mart 2005
Mesajlar
922
Açılan Konu
52
Tepki puanı
4
Bu kodu kullanmak isteyenler için bir ipucu. Kod genelde aynı bölümdeki kayıtları gösteriyor. Farklı kayıtları göstermesi için for ve rand kısımlarında değişiklik yapmak gerekiyor.
 
Üst