PDA

View Full Version : سوال: نمایش فقط یکبار از اطلاعات



mamali-mohammad
سه شنبه 05 مهر 1390, 23:45 عصر
سلام
مثلا ما در دیتابیس اینارو داریم :
2,2,9,3,4,2,4,2,2,3,6,4,

حالا میخوام اینارو نمایش بدم
اما به این شرط که عدد تکراری نباشه
مثلا اگه 10 تا 2 داریم ، فقط یکیشون نشون بده
از group by استفاده کردم جواب نداد

به طور کل میخوام حاصل بالایی این باشه :
2,9,3,4,6

mohsen6500
چهارشنبه 06 مهر 1390, 00:10 صبح
سلام میتونید از این دستور استفاده کنید

$query = "select distinct $Fild from $Table ";
$result = mysql_query($query,$db);

faravaghi
چهارشنبه 06 مهر 1390, 00:15 صبح
سلام دوست عزیز،
شما می توانید با دستور DISTINCT ، فقط یکی از مقادیری را که در بانک همانند هستند را انتخاب نمایید.
SELECT DISTINCT column_name(s)
FROM table_name
اینم آدرس منبع (http://www.w3schools.com/sql/sql_distinct.asp)

mamali-mohammad
پنج شنبه 07 مهر 1390, 01:14 صبح
ممنون دوستان
این مشکل حل شد
حالا اگه بخوام اطلاعات رو بر اساس دو فاکتور نشون بدم باید چه کنم ؟

binyaft
پنج شنبه 07 مهر 1390, 10:31 صبح
ممنون دوستان
این مشکل حل شد
حالا اگه بخوام اطلاعات رو بر اساس دو فاکتور نشون بدم باید چه کنم ؟

اینی که گفتی یعنی چه ؟

mamali-mohammad
پنج شنبه 07 مهر 1390, 11:41 صبح
من دارم یه قسمت آرشیو مینویسم
این کدش شده برای نمایش لیست آرشیو :

$list ='';
$select = mysql_query("SELECT distinct `date` FROM `list` LIMIT 12");
while( $row = mysql_fetch_array($select) )
{
$year = jdate("y",strtotime($row["date"]));
$month = jdate("F",strtotime($row["date"]));

$years = jdate("y",strtotime($row["date"]));
$months = jdate("m",strtotime($row["date"]));

$list .= '<a href="archive.php?archive='.$years.'-'.$months.'">آرشیو '.$month.' سال '.$year.'</a><br />';
}

اینم خروجیش :

آرشیو مهر سال 1390
آرشیو شهریور سال 1390

حالا میخوام یه لیست دیگه فقط برای سال بسازم

مثلا :
آرشیو سال 1389
آرشیو سال 1388

این مورد رو موندم چطوری انجام بدم

binyaft
پنج شنبه 07 مهر 1390, 13:39 عصر
فرمت ذخیره سازی اگر به صورت زیر باشه

2001-01-01
میتونی با LIKE این کار رو انجام بدی ....

mamali-mohammad
پنج شنبه 07 مهر 1390, 15:28 عصر
بله همینطوری هست
میتونید کد کامل بدید ؟

binyaft
پنج شنبه 07 مهر 1390, 15:45 عصر
SELECT * FROM `tbl_name` WHERE `date` LIKE '2010%'

mamali-mohammad
پنج شنبه 07 مهر 1390, 17:20 عصر
ممنون
کد نمونه شما درسته برای 2011
من مشکلم اینه که میخوام سال رو بخونه
یعنی جای 2011 شما یه متغیر بزارم که فقط سال رو بکشه بیرون

mamali-mohammad
جمعه 15 مهر 1390, 13:57 عصر
دوستان چیکار کنم ؟
من الان میخوام فقط بر اساس ماه نشون بده اطلاعات رو
چه کنم ؟

mamali-mohammad
جمعه 15 مهر 1390, 18:43 عصر
دوستان کسی هست کمک کنه ؟

blackmak
جمعه 15 مهر 1390, 18:52 عصر
// ّبر اساس سال
SELECT * FROM `tbl_name` WHERE `date` LIKE '2010-%'
// ّبر اساس ماه
SELECT * FROM `tbl_name` WHERE `date` LIKE '%-12-%'
// ّبر اساس روز
SELECT * FROM `tbl_name` WHERE `date` LIKE '-%25'

mamali-mohammad
جمعه 15 مهر 1390, 19:38 عصر
اینی که شما نوشتی فقط برای یه سال هست
من دیتابیسم شامل 10 سال هست که میشه حدود 120 ماه !

blackmak
جمعه 15 مهر 1390, 20:00 عصر
دقیقا میشه بگید خروجی چی می خوایین ؟

mamali-mohammad
جمعه 15 مهر 1390, 20:13 عصر
من میخوام از دیتابیس آرشیو رو بکشم بیرون
به این صورت که لیست آرشیوی بیاد فقط بر اساس ماه بکشه بیرون
و اینکه ماه های یکسان فقط یه بار تکرار بشه
اینم کد بنده :

$sql= mysql_query("SELECT DISTINCT `date` FROM `list` LIMIT 12");

این میاد بر اساس تاریخ میکشه بیرون اما یکسان هارو بر اساس کل تاریخ در نظر میگیره
مثلا اگه دو مطلب در تاریخ 11/8/1388 زده شده باشه رو یکی میکنه اما اگه یه مطلب در تاریخ 12/8/1388 باشه ، اینو جدا نشون میده

حالا من میخوام بر اساس ماه باشه فقط

blackmak
جمعه 15 مهر 1390, 20:53 عصر
ببین یه کاری کن addam کن تو یاهو blackmaak

mamali-mohammad
جمعه 15 مهر 1390, 21:09 عصر
اگه میشه هینجا پاسخ بدید
ممنون