Yazdırmış olduğum bot forum, sayfa ve kişilerin gonderilerini rasgele secip facebook benzeri duvarda rasgele şekilde yayınlamaktadır. Yalnız surekli cok eski gonderileri satırlardan secmekte ve yayınlamakta. Aşağıda gosterilen kodda nereyi nasıl değiştireyim ki forumda yayınlanan son 20 gonderiyi, sayfada ( guruplarda)) yayınlanan son 20 gonderiyi ve kişilerin (user) son 20 gonderiyi rasgele secsin. Ek sik dosya varsa onları da yukleyebilirim. Yardımlarınız icin şimdiden teşekkurler
Ek Olarak: Daha iyi anlaşılabilmesi icin sitemiz www.hopboom.com yerlifacebook projesidir.
Ek Olarak: Bi arkadaş başka bir sitede şu şekilde cevap verdi ama istediğim olmadı
yapmanız gereken şey şu
mysql_query("update se_actions set action_date='$time' where action_object_owner='user' order by rand() limit $user ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='group' order by rand() limit $group ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='forum' order by rand() limit $forum ");
update yaparken random olarak alıyor verileri ancak bir şart koşmadan cekiyor. bu yuzden de id değeri ilk olanları cekiyor
mysql_query("update se_actions set action_date='$time' where action_object_owner='user' order by rand() DESC limit $user ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='group' order by rand() DESC limit $group ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='forum' order by rand() DESC limit $forum ");
DESC son dan başlamak anlamına geliyor. ayrıca limit olayını da belirtmemisiniz limit belirte bilirsiniz
$limit = "20";
mysql_query("update se_actions set action_date='$time' where action_object_owner='user' order by rand() DESC limit $limit ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='group' order by rand() DESC limit $limit ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='forum' order by rand() DESC limit $limit ");
Kolay Gelsin
Benim cevabım
Sizin verdiğiniz komutları denedim. Buradaki $limit = "20"; tanımlaması şu tetiklemeyi yaptı: user paylaşımından 20 adet, group paylaşımından 20 adet, forum paylaşımından 20 adet. Ben bunu istemedim aslında.
$user, $gorup, $forum değişkenlerine ben dışarıdan yazılı ufak bir program ile kac adet olacağını ataya biliyorum. Orneğin user 5 adet group 10 adet ve forum 2 adet olsun diyebiliyorum.
Sizin duzenlemenizi yaptığımda son eklenenden itibaren yapmaya başladı. desc komutu bunu yaptı. ancak $limit ataması istediğimi yapmadı.
Benim istediğim random komutu icin sadece son 50 kullanıcı gonderimi, son 50 group gonderimi, son 50 forum gonderimi icinde random yani rasgele getirmesi.
Sistemde kullanıcı gonderimi, sayfa gonderimi, forum gonderimi, itiraf, fıkra, oyun, muzik vb 300 binden fazla gonderi mevcut. Ben hepsi icinde değil yukarıda belirtiğim gibi son 50 gonderiler icinde rasgele cekilmesini istiyorum.
malesef $limit ataması gonderi adedini beliyor. Gonderi adedine ben dışarıdan hakimim ve değiştirebiliyorum.
Yardım ederseniz cok sevinirim şimdiden teşekkurler.
Karşılığında gelen cevap
mysql_query("update se_actions set action_date='$time' where action_object_owner='user' order by rand() DESC limit $user ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='group' order by rand() DESC limit $group ");
mysql_query("update se_actions set action_date='$time' where action_object_owner='forum' order by rand() DESC limit $forum ");
limiti zaten belirleyebiliyorsan $limit koymama gerek yok. istediğin şey tam olaraknedir anlamış değilim.
limiti 50 yap son 50 kaydı rastgele listele. bu yukarıdaki kod bu işlevi goruyor zaten.
Benim cevabım
evet limiti dışarıdan ayrı program yardımı ile belirleye biliyorum. Benim istediğim şoyle. Diyelim user tablosunda şu ana kadar 50 bin gonderi oluştu. son 50 gonderi icerisinden rasgele 5 yazıyı yazdırmak istiyorum. 5 yazıyı dışarıdan program ile secebiliyorum. Rasgele secimini user gonderileri icerisinden ve son 50 gonderiden yapıp 5 gonderiyi getirip duvara yazmalı.
Aynı durum forum ve sayfa adını verdiğim group icinden yapmalı.
dışarıdan limiti beliyebildiğim icin buna mudahale etmemeli. Ben canımın istediği gibi bu programla bazen 2 gonderi user forumdan 4 group tan da 6 gonderi gonder şeklinde limitleyebiliyoru. ama tum gonderiler icinden rasgele getiriyor. Ben son 50 gonderileri icerisinden cekmek istiyorum.
Ek Olarak: Daha iyi anlaşılabilmesi icin sitemiz www.hopboom.com yerlifacebook projesidir.