$fl = fopen('hm.txt', 'r');
$str = fgets($fl);
fclose($fl);
preg_match('#
$user = $getuser[1];
preg_match('#
$group = $getgroup[1];
preg_match('#
$forum = $getforum[1];
$user = htmlspecialchars($user);
$group = htmlspecialchars($group);
$forum = htmlspecialchars($forum);
$user = get_magic_quotes_gpc() ? stripslashes($user) : $user;
$group = get_magic_quotes_gpc() ? stripslashes($group) : $group;
$forum = get_magic_quotes_gpc() ? stripslashes($forum) : $forum;
include('connect.php');
$user = function_exists('mysql_real_escape_string') ? mysql_real_escape_string($user) : mysql_escape_string($user);
$group = function_exists('mysql_real_escape_string') ? mysql_real_escape_string($group) : mysql_escape_string($group);
$forum = function_exists('mysql_real_escape_string') ? mysql_real_escape_string($forum) : mysql_escape_string($forum);
$time = time();
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 ");
?>
Ek Olarak: Daha iyi anlaşılabilmesi için 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 çekiyor. bu yüzden de id değeri ilk olanları çekiyor
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 kaç adet olacağını ataya biliyorum. Örneğin user 5 adet group 10 adet ve forum 2 adet olsun diyebiliyorum.
Sizin düzenlemenizi yaptığımda son eklenenden itibaren yapmaya başladı. desc komutu bunu yaptı. ancak $limit ataması istediğimi yapmadı.
Benim istediğim random komutu için sadece son 50 kullanıcı gönderimi, son 50 group gönderimi, son 50 forum gönderimi içinde random yani rasgele getirmesi.
Sistemde kullanıcı gönderimi, sayfa gönderimi, forum gönderimi, itiraf, fıkra, oyun, müzik vb 300 binden fazla gönderi mevcut. Ben hepsi içinde değil yukarıda belirtiğim gibi son 50 gönderiler içinde rasgele çekilmesini istiyorum.
malesef $limit ataması gönderi adedini beliyor. Gönderi adedine ben dışarıdan hakimim ve değiştirebiliyorum.
Yardım ederseniz çok sevinirim şimdiden teşekkürler.
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 görüyor zaten.
Benim cevabım
evet limiti dışarıdan ayrı program yardımı ile belirleye biliyorum. Benim istediğim şöyle. Diyelim user tablosunda şu ana kadar 50 bin gönderi oluştu. son 50 gönderi içerisinden rasgele 5 yazıyı yazdırmak istiyorum. 5 yazıyı dışarıdan program ile seçebiliyorum. Rasgele seçimini user gönderileri içerisinden ve son 50 gönderiden yapıp 5 gönderiyi getirip duvara yazmalı.
Aynı durum forum ve sayfa adını verdiğim group içinden yapmalı.
dışarıdan limiti beliyebildiğim için buna müdahale etmemeli. Ben canımın istediği gibi bu programla bazen 2 gönderi user forumdan 4 group tan da 6 gönderi gönder şeklinde limitleyebiliyoru. ama tüm gönderiler içinden rasgele getiriyor. Ben son 50 gönderileri içerisinden çekmek istiyorum.
Ek Olarak: Ek Olarak: Daha iyi anlaşılabilmesi için sitemiz www.hopboom.com yerlifacebook projesidir.