با سلام .
3 تا جدول دارم با اسم های tbl1 و tbl2 و tbl3 میخوام آخرین مطالب ارسال شده ( آخرین رکوردها ) را در جایی نشان دهم . چطور میشه اینکار را انجام داد ؟؟
از دوستان خواهش میکنم کمک کنید .
با سلام .
3 تا جدول دارم با اسم های tbl1 و tbl2 و tbl3 میخوام آخرین مطالب ارسال شده ( آخرین رکوردها ) را در جایی نشان دهم . چطور میشه اینکار را انجام داد ؟؟
از دوستان خواهش میکنم کمک کنید .
آخرین ویرایش به وسیله tick-tock : شنبه 09 فروردین 1393 در 00:00 صبح
ساختار سه جدول یکیه یا فرق میکنه؟ اگه یکیه میتونید با UNION همه نتایج رو استخراج کنید و با ORDER BY `id` DESC LIMIT N تعداد N رکورد آخر رو استخراج کنید ولی اگه ساختارشون فرق میکنه، باید جداگانه کوئری بزنید.
با سلام . ممنون از راهنماییتان .
من یه مشکل دیگه دارم وقتی از union استفاده میکنم همه چیز خوب کار میکنه ولی وقتی order by id را به کوئری اضافه میکنم ارور میده .
کد من بصورت زیر است :
<?php include 'inc/db.php';
$result= mysql_query("SELECT `subject` FROM `vilasale` UNION ALL SELECT `sub` FROM `zamin` ORDER BY `id` DESC"); echo "<table border='2px'>"; while($row= mysql_fetch_array($result)) { echo "<tr><td>" . $row[0] . "</td></tr>"; }
echo "</table>";
?>
و ارور زیر را میدهد .
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\vila\admin\d.php on line 14
اگه قسمتORDER BY `id` DESC را حذف کنم ارور برطرف میشه .
منظور از id همون ستون شماره مطالب هست
شما ستونی با این نام دارید؟
اگر ستون تاریخ ارسال مطلب دارید میتونید اسم ستون رو جایگزین id کنید
خوب اول خود $result رو print_r بزنین ببینید خروجی چیه.معلومه اون خروجیه رو که میده foreach نمیتونه پیمایش بکنه
ptint_r که میگیرم هیچ خروجی چاپ نمیکنه .
دوستان من از کوئری زیر استفاده کردم مشکلم حل شد
$result= mysql_query("(SELECT subFROM vilaORDER BY timeDESC)UNION ALL(SELECT subFROM zaminORDER BY time DESC)");
فقط اونطوری که میخوام کار نمیکنه . یعنی هدف من از استفاده ازunion این بود که چندتا مطلب آخر ارسال شده توسط دو یا سه جدول موجود را نمایش بدم . یعنی اگه اول مطلب شماره 2 از جدول زمین ارسال شده بعد مطلب شماره 7 از جدول ویلا و بعد هم مطلب شماره 3 از جدول زمین . به ترتیب زمان ارسال به اینصورت باشه ( از آخر به اول )
مطلب شماره 3 زمین
مطلب شماره 7 ویلا
مطلب شماره 2 زمین
ولی این کد اول میاد آخرین پست های مربوط به ویلا را نشون میده و بعد میاد آخرین پستهای مربوط به زمین را نشان میده . در واقع یک order by کلی نداره و این مرتب سازی برای هر جدل جدا جدا انجام میشه
خب بالاخره این مشکل را بطور کامل حل کردم . پاسخ را قرار میدم تا اگه کسی نیازش شد استفاده کنه .
include 'inc/db.php';
$result= mysql_query("(SELECT time FROM `vila`) UNION ALL (SELECT time FROM `zamin`)ORDER BY `time` DESC");
echo "<table border='2px'>"; while($row= mysql_fetch_array($result)) { echo "<tr><td>" . $row['time'] . "</td></tr>"; }
echo "</table>";