دریافت تمامی اطلاعات یک جدول (table) و مرتب کردن اطلاعات به صورت صعودی یا نزولی، بر اساس مقدار یک ستون خاص
پس از ذخیره کردن تعدادی ردیف در یک جدول از پایگاه داده، ممکن است که بخواهیم اطلاعات جدول را دریافت کرده و سپس آنها (ردیف ها) را بر اساس مقدار یکی از ستون ها، به صورت صعودی یا نزولی، مرتب کنیم. در این آموزش، به این موضوع خواهیم پرداخت.
فرض کنید یک پایگاه داده با نام kelidestan ساخته ایم که دارای یک جدول با نام students است که دارای دو ستون می باشد (این جدول برای ذخیره نام دانش آموزان و نمره آنها می باشد). ستون اول، با نام name و از نوع VARCHAR با طول 20 می باشد و ستون دوم با نام mark و از نوع FLOAT می باشد. در جدول students ، نام دانش آموزان (درون ستون name) و نمره دانش آموزان (درون ستون mark) را ذخیره می کنیم. قبلا اطلاعات مربوط به 4 دانش آموز را در جدول students ذخیره کرده ایم. این اطلاعات را می توانید در شکل زیر که از برنامه phpMyAdmin می باشد، مشاهده کنید :

فرض کنید که بخواهیم ردیف های جدول را بر اساس نمره دانش آموزان (یعنی ستون mark)، به صورت صعودی نمایش بدهیم. برای این منظور، یک فایل PHP ، شامل کدهای PHP زیر می سازیم :
$con=mysql_connect("localhost","root","1234567");
mysql_select_db("kelidestan");
// Check connection
if (!$con){
die("به دلیل مشکل زیر، اتصال برقرار نشد : <br />" . mysql_error());
}
$result = mysql_query("SELECT * FROM students ORDER BY mark",$con);
while($row = mysql_fetch_array($result)){
echo $row['name'];
echo " " . $row['mark'];
echo "<br>";
}
mysql_close($con);
?>
نتیجه اجرای صفحه PHP ، به صورت زیر خواهد بود :

مشاهده می کنید که اطلاعات 4 دانش آموز، به صورت صعودی (بر اساس نمره) نمایش داده شده است.
همچنین اگر بخواهیم اطلاعات به صورت نزولی مرتب شود، باید از کلمه کلیدی DESC استفاده کنیم. برای این منظور، کدهای زیر را در صفحه PHP می نویسیم :
$con=mysql_connect("localhost","root","1234567");
mysql_select_db("kelidestan");
// Check connection
if (!$con){
die("به دلیل مشکل زیر، اتصال برقرار نشد : <br />" . mysql_error());
}
$result = mysql_query("SELECT * FROM students ORDER BY mark DESC",$con);
while($row = mysql_fetch_array($result)){
echo $row['name'];
echo " " . $row['mark'];
echo "<br>";
}
mysql_close($con);
?>
نتیجه اجرای صفحه PHP ، به صورت زیر خواهد بود :

مشاهده می کنید که اطلاعات 4 دانش آموز، به صورت نزولی (بر اساس نمره) نمایش داده شده است.
این بار می خواهیم اطلاعات دانش آموزان را بر اساس نام دانش آموزان (یعنی ستون name)، به صورت صعودی، مرتب کنیم. یک صفحه PHP ، شامل کدهای زیر می سازیم :
$con=mysql_connect("localhost","root","1234567");
mysql_select_db("kelidestan");
// Check connection
if (!$con){
die("به دلیل مشکل زیر، اتصال برقرار نشد : <br />" . mysql_error());
}
$result = mysql_query("SELECT * FROM students ORDER BY name",$con);
while($row = mysql_fetch_array($result)){
echo $row['name'];
echo " " . $row['mark'];
echo "<br>";
}
mysql_close($con);
?>
نتیجه اجرای صفحه PHP ، به صورت زیر خواهد بود :

مشاهده می کنید که اطلاعات 4 دانش آموز، به صورت صعودی (بر اساس نام دانش آموزان) نمایش داده شده است.
نکته :
چنانچه بخواهیم همین کار را با mysqli انجام بدهیم (به جای mysql)، باید کدهای زیر را بنویسیم :
بر اساس نمره دانش آموزان (یعنی ستون mark)، به صورت صعودی :
$con=mysqli_connect("localhost","root","1234567","kelidestan");
// Check connection
if (mysqli_connect_errno()){
echo "به دلیل مشکل زیر، اتصال برقرار نشد : <br />" . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM students ORDER BY mark");
while($row = mysqli_fetch_array($result)){
echo $row['name'];
echo " " . $row['mark'];
echo "<br>";
}
mysqli_close($con);
?>
بر اساس نمره دانش آموزان (یعنی ستون mark)، به صورت نزولی :
$con=mysqli_connect("localhost","root","1234567","kelidestan");
// Check connection
if (mysqli_connect_errno()){
echo "به دلیل مشکل زیر، اتصال برقرار نشد : <br />" . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM students ORDER BY mark DESC");
while($row = mysqli_fetch_array($result)){
echo $row['name'];
echo " " . $row['mark'];
echo "<br>";
}
mysqli_close($con);
?>
بر اساس نام دانش آموزان (یعنی ستون name)، به صورت صعودی :
$con=mysqli_connect("localhost","root","1234567","kelidestan");
// Check connection
if (mysqli_connect_errno()){
echo "به دلیل مشکل زیر، اتصال برقرار نشد : <br />" . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM students ORDER BY name");
while($row = mysqli_fetch_array($result)){
echo $row['name'];
echo " " . $row['mark'];
echo "<br>";
}
mysqli_close($con);
?>
کپی برداری توسط سایر وب سایت ها، ممنوع بوده و پیگرد قانونی دارد. (بیشتر بدانید)


سلام.
یه سوال داشتم در مورد مرتب کردن بر اساس دسته بندی .
مثلا 3 تا دسته بندی داریم به صورت زیر:
1: all
2: child
3: adult
زمانی که کاربران اطلاعاتشون میفرستن به صورت کلی نمایش داده میشه ولی اگه فقط دسته بندی child نشون داده بشه باید چیکار کرد.
ممنون میشم راهنماییم کنید.