X

همه چیز ولی هیچ چیز






 
شاهزاده را با خوراک دنبال کنید اگر رنگ تیره‌ی زمینه شما را هنگام خواندن مطالب ناراحت می کند می‌توانید روی view که کنار عنوان هر مطلب است کلیک کنید تا مطالب را با زمینه‌ی سفید ببینید. توجه کنید که این گزینه در مرورگر‌های قدیمی مثل Internet Explorer 6 کار نمی‌کند.
اگر مطالب این وبلاگ را دوست دارید و آن را دنبال می کنید به شما پیشنهاد می‌کنم این کار را با استفاده از خوراک انجام دهید تا درکنار اطلاع سریع از به‌روز رسانی وبلاگ بدون مراجعه به وبلاگ مطالب را بخوانید. از طرفی می‌توانید این وبلاگ را با پست الکترونیک دنبال کنید.
معرفی SilverStripeview

سیلوراستریپ یه CMS/FrameWork هستش که امکانات فوق العاده ای برای گسترش داره و به راحتی می تونید هر سیستمی که دوست دارید باهاش بسازید! از وبلاگ گرفته تا سایت خبری، گالری و هر چیز دیگه ای که به فکرتون می رسه! الان سرباز با SilverStripe اجرا می شه. از امکانات خوبی که داره طراحی فرم هست. شما می تونید هر فرمی با استفاده از SilverStripe بسازید.

مورد دیگه ای که لازم می دونم بگم اینه که SilverStripe متن باز هستش اما فرق دیگه ای که با اکثر OpenSource ها می کنه اینه که با مجوز BSD منتشر می شه. به همین دلیل اگه نیاز دارید پروژه ای رو که با SilverStripe انجام دادید به صورت متن بسته ارائه بدین مجوز BSD این امکان رو به شما می ده. پس می تونید از SilverStripe برای پروژه های کاری استفاده کنید.

من خودم که فعلا با FrameWork دیگه ای کار می کنم، اما این دلیل نمی شه از قدرت SilverStripe بگذریم. با این که به نظر من یه خورده کند هستش اما برای سایت های بزرگ هم می تونه استفاده بشه (نگاه کنید).

تمام این صحبت ها برای این بود که ماژول وبلاگ فارسی برای SilverStripe معرفی کنم. پس از نصب این بسته امکانات زیر رو خواهید داشت:

  1. ایجاد صفحه با آدرس فارسی
  2. وبلاگ با تاریخ های جلالی (هجری شمسی)
  3. قالب راست به چپ

شاید این شروعی بشه برای تشکیل گروه SilverStripe فارسی. دوستان اگه تمایلی برای مشارکت دارن یا پیشنهادی در مورد این بسته دارن مطرح کنن.

این بسته با نسخه ی 2.2.2 و 2.2.1 امتحان شده و مشکلی نداشته. توضیحات بیش تر در مورد این بسته فایل ChangeLog درون بسته پیدا می کنید.

سطر تصادفی در mysqlview

دارم روی یه اسکریپت کار می کنم که در اون به یه سطر تصادفی از mysql احتیاج دارم. خوب خود mysql راه خوبی برای این کار نداره و نمی شه از تابع های mysql در این زمینه انتظار کار خوبی داشت. اما تنها راهی که وجود داره اینه:

select * from TABLE order by rand() limit 1

اما بر پابه ی این مطلب این query بسیار کند (حدود ۷۱۷ ثانیه برای جدولی با تعداد سطر های ۲،۳۹۴،۹۶۸) و غیر قابل استفاده هستس و رسما استفاده از این هیچ دلیل منطقی نداره. خوب می خوام یه راه بهتری بهتون پیشنهاد کنم، البته با دو query اما بسیار سریع تر. خوب اول چیزی که لازم دارم تعداد کل سطر های موجود در جدول هستش که با این query به دست می یاد:

select Count(*) as `C` from TABLE

اما حالا می تونیم یه سطر به صورت تصادفی از جدول به دست بیاریم به این صورت که یه عدد تصادفی بین ۰ و تعداد سطر های جدول – ۱ با استفاده از زبونی که استفاده می کنیم به دست می یاریم و اسم اون رو N قرار می دیم. اما سطر مورد نظر با استفاده از query زیر به دست می یاد:

select * from TABLE limit N,1

اما برای این که دیگه هیچ سوالی نمونده باشه یک بار کل کار رو با php می نویسم:

<?php
$con = mysqli_connect("host", "user", "pass", "db");
$sqlRes_total = mysqli_query($con, "SELECT COUNT(*) as `C` FROM `TABLE`");
$total = mysqli_fetch_object($sqlRes_total)->C;
$random = rand(0, $total-1);
$sqlRes_row = mysqli_query($con, "SELECT * FROM `TABLE` LIMIT {$random},1");
$row = mysqli_fetch_object($sqlRes_row);
print_r($row);
mysqli_close($con);
?>

اما یه چیز دیگه فرض کنید شما یه جدول دارید که توی اون ۱۰۰،۰۰۰ سطر دارید. خوب به نظر من اگه بین ۵۰۰۰ سطر آخر هم یه سطر به صورت تصادفی داشته باشین بسته. پس خیلی راحت می شه query اول رو حذف کرد و به جای N از ۴۹۹۹ استفاده کرد.

نویسنده: بهروز |  پیوند | نظر بدهید | موضوع: مای اس کیو ال - mysql، پی اچ پی - php
scroll [up]
scroll [down]