PDA

View Full Version : سوال: سوال از توابع تاريخ



ghola1364
سه شنبه 13 مرداد 1388, 15:04 عصر
سلام خسته نباشيد
يه سوال من مي خواستم فرم براي جستجو تاريخ بگيره يعني از تاريخ 2/4/1388 الي 19/5/1388 را جستجو كرده اطلاعات ثبت شده در اين تاريخ تا تاريخ هاي ديگر رو به ترتيب تاريخ بياورد به چه شكل از تابع data() بايد استفده كرد من سورس يه برنامه كه به اين شكل هست را دارم ولي مي خوام خودم ياد بگيرم ممنون مي شم من رو راهنمايي كنيد
پيشاپيش از راهنمايي اساتيد محترم ممنون

امیـرحسین
سه شنبه 13 مرداد 1388, 18:38 عصر
این کار با PHP زیاد بهینه نیست. برای این کار از توابع MySQL استفاده می کنند. MySQL یا دیتابیس های دیگه، همه توابع مقایسه ای و مرتبسازی دارند.
مثلا اگر تاریخها رو صورت timestamp ذخیره کردید، می تونید به سادگی از BETWEEN استفاده کنید و در آخر هم از ORDER BY

SELECT * FROM myTable WHERE date BETWEEN 1258986895 AND 1258987000 ORDER BY date DESC
این بهینه ترین روش هست.
انجام این کار بدون MySQL و فقط با PHP خیلی کند خواهد بود. شما باید اطلاعات رو به شکل آرایه بگیرید و دسته بندی کنید و براساسی که میخواهید sort کنید.....

ghola1364
چهارشنبه 14 مرداد 1388, 07:50 صبح
سلام خسته نباشيد
اين تابع ماي اسكول هست تابع تاريخ هم داريم كه در پي اچ پي ازش استفاده مي شه من مي خوام از اون تابع استفاده كنم كه با فرمي كه با htmlساختم كار كنم يعني فرم جستجوم
اگه مي شه درباره اين توضيح بدين

ghola1364
چهارشنبه 14 مرداد 1388, 11:03 صبح
اساتيد لطفا راهنمايي بفرماييد

امیـرحسین
چهارشنبه 14 مرداد 1388, 14:43 عصر
شما ساختار اطلاعاتی که دارید و میخواید مرتب کنید چطوریه؟ خیلی مهمه که چه شرایطی دارید.
شما باید اطلاعاتتون رو جمع کنید مثلا توی آرایه و مرتب سازی رو، برای آرایه انجام بدید.
مثلا اطلاعات رو MySQL به هر صورتی گرفتیم و نتایج رو میخوایم براساس تاریخ نمایش بدیم. کاری که من می کنم اینه:

$select = mysql_query("SELECT id, content, time FROM table");

$data = array();
while($row = mysql_fetch_assoc($select))
$data[] = $row;

$time = array();
foreach($data as $index => $value)
$time[$index] = $value["time"];

array_multisort($data['time'], SORT_DESC);

من تا حالا تابع array_multisort (http://ir.php.net/manual/en/function.array-multisort.php) رو تست نکردم ولی این باید کار کنه. مثلا یک عنصر از آرایه row که اطلاعات هر سطر دیتابیس توشه، به شکل زیره:

$row = array(
"id" => 52,
"content" => "CoNtEnt",
"time" => 127683566
);
پس آرایه data شبیه اینه:

$data = array(
array("id" => 52, "content" => "CoNtEnt", "time" => 127683566),
array("id" => 53, "content" => "CoNtEnt1", "time" => 127683554),
array("id" => 54, "content" => "CoNtEnt2", "time" => 127683562),
array("id" => 55, "content" => "CoNtEnt3", "time" => 127683333)
);
که تابع array_multisort قاعدتا باید آرایه رو براساس کلید "time" بصورت نزولی مرتب کنه.

ghola1364
شنبه 24 مرداد 1388, 10:48 صبح
مي شه بيشتر توضيح بدين شرمنده من درست متوجه نشدم بعد من مي خوام تاريخم شمسي باشه