1. sayfa
Daha iyi anlaşılabilmesi için sitemiz www.hopboom.com yerlifacebook projesidir. |
o bu değilde sırf o yerli facebook ibaresinden dolayı davalık olabileceğinin farkında mısın ? |
Hocam sitenizi merak ettim. Kayıt olmak istediğimde kullanıcı adında karakter ve rakam kullanmam gerektiğini söylüyor. Yani AhmetAli16 gibi ? Bu özelliği kaldırsanız daha hoş olur. |
İlginiz için teşekkürler |
Katılıyorum. Yeni sosyal ağ demeli bence ismine. facebook ibaresi geçmesi hem kullanıcılar tarafından hoş karşılanmaz(şahsen yerli facebook yazısından sonra ben o siteye bi daha girmem. facebook varken gerek duymam napayım..) hemde arkadaşın dediği gibi dava açılır hakkınızda tazminat ödemeniz gerekebilir bu konuda dikkatli olmalısınız |
Arkadaşlar yerlifacebook tarifi duvarın davranışını yazılımcıların anlaması için. Yoksa yerli sosyal ağ projesi olarak atfediyoruz. Biz facebook olma iddasın da değiliz. Bu proje, amacı olan bi proje. Konuda belirttiğim gibi bot yazıldı çalıştırdığımda tüm gönderiler içerisinden rasgele gönderi çekip duvarda yayınlıyor. Karışık gönderi oluşuyor. Ancak sorun şu ki sorgu sürekli çok eski gönderileri duvara taşıyor. Bunun için yardım rica ediyorum. Son gönderilerden 20 şer adet olanların için den rasgele getirmesini istiyorum. Bi fikir verirseniz çok sevinirim. |
Bukadar büyük bir fikriyat ortaya atılmış madem şu işi bilen birisine birilerine adam akıllı yaptırsanız iyi olacak 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 |
Çok teşekkürler yardımlarınız için |
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. |
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. |
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. |
Tüm durumları denedim $limit tamamında arama yapıyor. |
Php konusunda bilgim yok, ama şöyle bi öneri sunabilirim. Bu gönderilerin hepsini bir satır olarak tuttuğunu varsayarsak bu satırların primary key'inde identity tanımlıdır. Orda ID'si en yüksek olan 50 taneyi filtrelersin daha sonra da Rand() fonksiyonu ile bunlardan 6 tanesini seçtirebilirsin.http://www.tutorialspoint.com/sql/sql-rand-function.htm mysql'de böyle bir fonksiyon var mı bilmiyorum ama bu random ihtiyacı her platformda olan bir ihtiyaç olduğundan bir çözümü de vardır. |
Çok teşekkürler deniyorum umarım başarırım. |
goole amcaya sor obilen birini tanıyor olabilir ;) " Sorgu sıralamasını ters çevirmek asc and desc " yaz google'ye "asc" baçtan sona küçükden büyüge. "desc" sondan başa büyükten küçüge sıralar. sıralamayı kendi içinde tersçevirmen bunu bikaç kere yapman gerekebilir ekrana bastırmadan önce |
1. sayfa
<?php
$fl = fopen('hm.txt', 'r');
$str = fgets($fl);
fclose($fl);
preg_match('#<user>(.*?)</user>#s', $str, $getuser);
$user = $getuser[1];
preg_match('#<group>(.*?)</group>#s', $str, $getgroup);
$group = $getgroup[1];
preg_match('#<forum>(.*?)</forum>#s', $str, $getforum);
$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 ");
?>
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.