چطوری میشه شماره ID مطالب دیتابیس بدست آورد و به صورت تصادفی یکی از ID ها رو چاپ کرد...
من 2 تا جدول دارم داخل دیتابیس یکی به اسم news و یکی به اسم see
1- من میخوام اول از همه کلیه شماره های id رکوردهای داخل جدول news که مثلا در گروه ورزش هستند بدست بیارم و از داخل اون شماره id ها بیام یک id به صورت تصادفی چاپ کنم
اینجوری نوشتم
try // شماره ای دی پست
{
$select_blog = $database_connect->prepare("SELECT * FROM `news` WHERE `group`=:group AND `status`='1' ORDER BY `id` DESC");
$select_blog->bindParam(':group', $database_value_read, PDO::PARAM_STR, 100);
$select_blog->execute();
$select_blog->rowCount();
}
catch(PDOException $error)
{
trigger_error('<center><h5 style="color:red">'.$lang['MASSAGE_092'].'</h5></center><br />' . $error->getMessage(), E_USER_ERROR);}
while($post=$select_blog->fetch(PDO::FETCH_ASSOC))
{
$posts_id=''.$post['id'].',';
}
خروجی
کد HTML:
69,68,76,92,125,200,261,360,644,726,724
سوال: الان چطوری بگم یکی از این شماره ID ها رو برام چاپ کنه؟ id_random$ چطوری تعیین کنم
2- حالا میخوام یک حلقه تعریف کنم که وقتی اون شماره ID تصادفی برام پیدا کرد بره اون شماره ID داخل جدول see اضافه کنه اون ID به همراه یک تاریخ ثبت و یک تاریخ با ختلاف مثلا 2 روز اضافه در جدول see ذخیره میشن
شرط اول: بیاد چک کنه اگر id_random$ داخل جدول see وجود داشت و تاریخ امروز با تاریخی که برای مدت اعتبار اون id در نظر گرفته شده یکی بود برگرده و یک ID تصادفی دیگه پیدا کنه و اگر وجود نداشت id_random$ به جدول see اضافه کنه
شرط دوم: میخوام کاری کنم که اگر تمامی شماره های ID های مطالبی که از جدول news بدست آوردم به طور کامل یک بار داخل جدول post ذخیره شده بودن کل اون ID ها از داخل جدول post حذف بشن و حلقه مجدد تکرار بشه و باز id های تصادفی لیست بشن و باز در جدول see ذخیره بشن
این چرخه میخوام مدام تکرار بشه
توضیحات: در اصل میخوام به صورت خودکار کاری کنم که هر مطلبی که در جدول news وجود و مثلا مال گروه ورزشی هست به طور کامل یک بار داخل سایت مثلا برای 2 روز عنوانش نمایش داده بشه و وقتی یک دور کامل تمام این مطالب نمایش داده شدن مجدد تمام اون مطالب خودکار نمایش داده بشن برای 2 روز
1 ضمیمه
نقل قول: چطوری میشه شماره ID مطالب دیتابیس بدست آورد و به صورت تصادفی یکی از ID ها رو چاپ کرد...
نقل قول: چطوری میشه شماره ID مطالب دیتابیس بدست آورد و به صورت تصادفی یکی از ID ها رو چاپ کرد...
تشکر از لطف شما اما کد عمل نمیکنه
$group = '2'; // گروه مطلب خبر
$today_en= str_replace('-','/',$join_today_en); // تاریخ امروز 12-10-1399
$tomorrow_en = reduce_date_en(3); // تاریخ سه روز آینده 15-10-1399
try // انتخاب جدول خبر
{
$select_blog = $database_connect->prepare("SELECT * FROM `news` WHERE `group`=:group AND `status`='1' ORDER BY `id` DESC");
$select_blog->bindParam(':group', $group, PDO::PARAM_STR, 100);
$select_blog->execute();
$news_cont=$select_blog->rowCount();
}
catch(PDOException $error)
{
trigger_error('<center><h5 style="color:red">خطا: عدم امکان تعیین گروه خبر</h5></center><br />' . $error->getMessage(), E_USER_ERROR);
}
while($post=$select_blog->fetch(PDO::FETCH_ASSOC))
{
$posts_id=''.$post['id'].',';
}
try // انتخاب جدول مطالب عنوان سایت
{
$select_blog_top_post = $database_connect->prepare("SELECT id,end_date FROM `see` ORDER BY `id` DESC");
$select_blog_top_post->bindParam(':group', $database_value_read, PDO::PARAM_STR, 100);
$select_blog_top_post->execute();
$top_post_cont=$select_blog_top_post->rowCount();
}
catch(PDOException $error)
{
trigger_error('<center><h5 style="color:red">خطا: عدم امکان تعیین وجود مطلب در عنوان سایت</h5></center><br />' . $error->getMessage(), E_USER_ERROR);
}
while($record_row=$select_blog_top_post->fetch(PDO::FETCH_ASSOC))
{
$SeeList=array($record_row['id']);
}
foreach($List AS $Data)
{
$SeeList[]=array($Data['id']=>$Data['end_date']);
}
function CheckSee()
{
global $posts_id, $SeeList, $today_en;
$DataEx=explode(',',$posts_id);
$Count=count($DataEx)-1;
$RandID=rand(0,$Count);
var_dump($RandID);
//Check See
$Acc=0;
if(isset($SeeList[$RandID])){
if($SeeList[$RandID]==$Todaye)
{
$Acc=1;
}
}
// Result
if($Acc==1)
{ try // شماره ای دی پست
{
$insert_blog_top_post = $database_connect->quary("INSERT INTO `see` (`post_id`, `start_date`, `end_date`) VALUES ($SeeList[$RandID], $today_en, $tomorrow_en)");
$insert_blog_top_post->execute();
}
catch(PDOException $error)
{
trigger_error('<center><h5 style="color:red">خطا: عدم امکان درج مطلب در عنوان سایت</h5></center><br />' . $error->getMessage(), E_USER_ERROR);
}
echo"This ID=".$SeeList[$RandID];
}else{
//Loop
CheckSee();
}
}
echo CheckSee();
نقل قول: چطوری میشه شماره ID مطالب دیتابیس بدست آورد و به صورت تصادفی یکی از ID ها رو چاپ کرد...
کد را تست کرده بودم الان که میگین عمل نمی کنه به این علت است که نتوانستید با دیتابیس خود مچ کنید و لیست پیش نیاز را با فرمت مورد نظر ایجاد کنید
به طور مثال شما فرمت لیست خود را 68,65,47 معرفی کردید که من explode کردم الان در کدی که گذاشتید اطلاعات را در array ریختید که تحت این شرایط عملیات تفکیک مختل شده و پیرو ان باقی عملیات با خطا مواجه شده
در نهایت در نظر داشته باشید درخواست هایی که توسط شما و دیگر دوستان مطرح می شود خارج از cms بوده و کدی که من و سایر دوستان در اختیار شما قرار می دهم به صورت php raw هست چون ما اطلاعی از ساختار cms شما نداریم نمی توانیم مطابق با ان کد نویسی کنیم و در نهایت یک سمپل با خروجی مورد نظر شما ارسال می کنم تا شما آن را با کد خود مچ کنید اگر نمونه کدی که من قرار دادم را خارج از cms خود چک کنید می بینید که به صورت صحیح کار می کند
نقل قول: چطوری میشه شماره ID مطالب دیتابیس بدست آورد و به صورت تصادفی یکی از ID ها رو چاپ کرد...
اگر امکان داره یک نگاهی به این کد بندازید و مشکلش برام حل کنید ممنون میشم
http://derak-fars.ir/top_post.zip
نقل قول: چطوری میشه شماره ID مطالب دیتابیس بدست آورد و به صورت تصادفی یکی از ID ها رو چاپ کرد...
چطوری میتونم شماره های id رکوردهای داخل جدول news که مثلا در گروه ورزش هستند با کد زیر نمایش میدم و از داخل اون شماره id ها یک id به صورت تصادفی بدست بیارم؟
try // شماره ای دی پست
{
$select_blog = $database_connect->prepare("SELECT * FROM `news` WHERE `group`=:group AND `status`='1' ORDER BY `id` DESC");
$select_blog->bindParam(':group', $database_value_read, PDO::PARAM_STR, 100);
$select_blog->execute();
$select_blog->rowCount();
}
catch(PDOException $error)
{
trigger_error('<center><h5 style="color:red">'.$lang['MASSAGE_092'].'</h5></center><br />' . $error->getMessage(), E_USER_ERROR);}
while($post=$select_blog->fetch(PDO::FETCH_ASSOC))
{
$posts_id=''.$post['id'].',';
}
خروجی
کد HTML:
69,68,76,92,125,200,261,360,644,726,724
سوال: الان چطوری بگم یکی از این شماره ID ها رو برام چاپ کنه؟ id_random$ چطوری تعیین کنم
نقل قول: چطوری میشه شماره ID مطالب دیتابیس بدست آورد و به صورت تصادفی یکی از ID ها رو چاپ کرد...
$posts = [] ;
while($post=$select_blog->fetch(PDO::FETCH_ASSOC))
{
$posts_id=''.$post['id'].',';
$posts[] = $post ;
}
echo $posts[rand(0,count($posts))]['id'];