ساخت یک کد Rndom (تصادفی)

Goroop.ir

Member
سلام . حال شما خوبه ؟ خوب هستید انشالله . خوب قرار از مزاحمت این بود که :

من میخام اطلاعات رو از دیتا بیس به صورت تصادفی بخونم فرض کنید در دیتابیس یک جدول دارید که ده تا سط داره و میخاهید با هر بار رفرش شدن سایت یکی از سطر های ان جدول رو بخواند به طور تصادفی ولی تکراری نباشد یعنی به ترتیب بخاند مثلا
1 و بعد وقتی سایت رفرش شد بره 2 و دوباره رفرش شد بره 3 و ... و وقتی رسید به ده دوباره بر گرده به همون یک یعنی همینطوری سطر ها رو دور بزنه





ممنون میشم اگر کمک کنید
 

asdb20

Member
سلام
می تونی شماره سطر رو که خوندی یه جایی مثل فایل ثبت کنی
PHP:
select * from table_name where id < '$id' order by id asc limit 1
اگر هم شکست خورد بیا اولین سطر
 

Goroop.ir

Member
متو جه نشدم

یعنی شما میگید :
PHP:
$count = $count + 1;
select * from table_name where id < '$id' order by id asc limit $count

اخه اینطوری که نمیشه اخه هربار رفرش یکی بهش اضافه میشه و تمام سطر های من ده تا است و همینطوری که رفرش میشه یک بار بهش اضافه میشه تا از ده بالاتر بره
خوب اینطوری که نمیشه

ولی من یک فکری به سرم زد که نمیدونم درست هست یا نه

منطق کار :

با استفاده از
PHP:
$num_rows = mysql_num_rows($result);
تعداد سط ها رو بشماریم

یک کانتر درست کنیم که با هر بار رفرش شدن یکی بهش اضافه بشه و اگر رسید به ده کانتر صفر بشه ولی نمیدونم چطوری این کار رو بکنم

کسی هست کمک کنه یا یک کد دیگه ایی بزاره ؟
 

Goroop.ir

Member
اینم کدش که الان نوشتم
PHP:
$sql =  mysql_query("SELECT * FROM DBame ORDER BY id");
$num_rows = mysql_num_rows($result);
$fd1 = fopen ('cunt.txt' , "r"); 
$tedad = fread ($fd1 , filesize (cunt.txt)) ; 
fclose($fd1) ; 

$count = $tedad + 1;
if ($count == $num_rows)
{
$fd2 = fopen ('cunt.txt' , "w"); 
$writ= fwrite ($fd2 , '0' ); 
fclose($fd2); 
}else{
select * from table_name where id = '$id' order by id asc limit $count}
}
$fd = fopen ('cunt.txt' , "w"); 
$writ= fwrite ($fd , $count ); 
fclose($fd);
 

jhoseini

Member
الان مشکل حل شد؟ یا ما هم راه حل بدیم؟
------------
PHP:
$res=mysql_query(" SELECT * FROM `table_name` WHERE 1  ORDER BY `last_access_date` ASC LIMIT 1 ");
$rec=mysql_fetch_array($res);
mysql_query(" UPDATE `table_name` SET `last_access_date`='".date("U")."'  WHERE `id`='".$rec['id']."'  LIMIT 1 ");

var_dump($rec); // :)
یه خورده if & else هم قاتیش کن : )
 
آخرین ویرایش:

Goroop.ir

Member
میشه توضیح بدید که کد شما چطوری کار میکنه ؟
با date کار میکنه ؟
یعنی روزانه یک تبلیغ رو نمایش میده ؟


اگر توضیح بدی ممنون میشم


راستی راه حل من چطور بود ؟



با تشکر .
 

jhoseini

Member
ببخشید، چیزی که نوشته بودم یه DESC کم داشت، گزاشتم
یعنی روزانه یک تبلیغ رو نمایش میده ؟
رو رکوردی که انتخاب شد تاریخ انتخاب رو مینویسه، و دفعه بعد وقتی میخاد انتخاب (select) کنه، میبینه کی تاریخش کمتره(کدومشون قبل بقیه select شده)
 

Goroop.ir

Member
ممنون از اینکه اینو نوشتی دستت هم درد نکنه یک دنیا هم ممنون ولی خدایی کدت زیاد جالب نبود من نفهمیدم چطوری شده

اخه این چطوری سطر ها رو نشون میده میتونی یک نمونه ی کامل با دیتابیس بنویسی بهم بدی ؟


ممنون میشم
 

جدیدترین ارسال ها

بالا