PDA

View Full Version : نمایش رکورد ها در دیتابیس با یک مقدار مشخص



hamidhassas
جمعه 25 فروردین 1391, 20:18 عصر
من دارای یک جدول هستم به نام news و دارای یک فیلد به نام group که در آن مقدار های عددی است حالا
کاری کنم که فقط در فیلد group هر رکوردی که دارای مقدار 3 است به نمایش در بیاد

من با کد زیر این کار را میکنم ولی چند مشکل داره

1- رکوردهایی که دارای مقدار 3 هستند نمایش داده میشه اما در انتهای آن رکوردهایی که دارای این مقدار نیستند هم به نمایش در می آید
2-تمامی رکوردهایی که دارای مقدار 3 هستند به ترتیب آخرین رکورد های ثبت شده به نمایش در نمی آیند یعنی می خواهم به ترتیب جدید ترین رکورد تا قدیمی ترین رکورد با مقدار 3 به نمایش در بیاید



<?php
include '../../Administrator/config.php';
connect($username,$password,$Mydb);
mysql_query('SET NAMES \'utf8\'');
$read_sql= "select * from `news` ORDER BY `Gorup`=3 DESC LIMIT 0,30";
$tab=mysql_query($read_sql);
$row=mysql_fetch_array($tab);
mysql_close ($con);
?>

Reza1607
جمعه 25 فروردین 1391, 20:51 عصر
كوئري رو به اين صورت اصلاح كنيد
select * from `news` WHERE `Group`=3 ORDER BY `Gorup` DESC LIMIT 0,30

hamidhassas
شنبه 26 فروردین 1391, 18:24 عصر
ممنون

رکورد های مورد نظر به درستی نمایش داده می شوند اما رکورد ها از قدیم به جدید نمایش داده میشه

hamidhassas
دوشنبه 28 فروردین 1391, 11:42 صبح
رکورد های مورد نظر به درستی نمایش داده می شوند اما رکورد ها از قدیم به جدید نمایش داده میشه

آیا ممکنه به خاطر اینکه در داخل دیتابیس میزان رکورد های ثبت شده زیاد است این مشکل پیش آمده باشد

MMSHFE
دوشنبه 28 فروردین 1391, 12:33 عصر
نه دوست عزیز، بخاطر DESC توی ORDER BY هست. این رو امتحان کنید:
SELECT * FROM `news` WHERE (`Group`='3') ORDER BY `id` LIMIT 0,30

hamidhassas
دوشنبه 28 فروردین 1391, 16:58 عصر
متاسفانه جواب نمیده

AbiriAmir
دوشنبه 28 فروردین 1391, 17:04 عصر
چیزی که شما نیاز دارید این هست:

SELECT * FROM `news` WHERE `Group`='3'

برای نمایش از آخر به اول:

SELECT * FROM `news` WHERE `Group`='3' ORDER BY `id DESC

برای محدود کردن تعداد خروجی:

SELECT * FROM `news` WHERE `Group`='3' LIMIT 50