PDA

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



masiha68
شنبه 05 اسفند 1391, 22:22 عصر
سلام
من با استفاده از کد زیر

mysql_select_db($database_pop, $pop);
$lop=$_GET['idpost'];
$query_showcomtotal = "SELECT comtotal FROM `comment` where comid=$lop";

$showcomtotal = mysql_query($query_showcomtotal, $pop) or die(mysql_error());
تعدادی کوئری از جدول comment و با comid = $lop انتخاب کردم . الان می خوام از بین اینا بیشترین مقدار رو به دست بیارم و چاپ کنم . می دونم از تابع max استفاده میشه ولی هر کاری می کنم هیچ مقداری رو بر نمی گردونه . ممنون می شم یه نگاهی بندازین

siavashsay
شنبه 05 اسفند 1391, 22:31 عصر
http://www.tizag.com/mysqlTutorial/mysqlmax.php

masiha68
شنبه 05 اسفند 1391, 23:00 عصر
روش دیگه ای نیست
چون این روش فقط مقدار رو چاپ می کنه

facefeed
شنبه 05 اسفند 1391, 23:55 عصر
شما از فیلد های تیبلت یه اطلاعاتی به ما بده تا بتونیم دقیق بهت کمک کنیم

masiha68
یک شنبه 06 اسفند 1391, 00:01 صبح
اطلاعات کامل توی همون کد اولیه هست دیگه
comtotal : فیلدی هست که یه مقداری توش ذخیره شده
comid : ای دی کامنت هایست که یکتا هم نیست و می تونه چندین comid داشته باشیم
comment : هم جلدوله اطلاعات هست
من میخوام تموم comtotal هایی که comid یشون مساوی $lop هست فراخوانی بشن و از بین اونا بیشترین مقدار انتخاب بشه و توی یه متغییر ذخیره بشه

facefeed
یک شنبه 06 اسفند 1391, 00:40 صبح
این کد باید جواب بده :متفکر:


mysql_select_db($database_pop, $pop);
$lop=$_GET['idpost'];
$query_showcomtotal = "SELECT Max(comtotal) FROM comment where comid={$lop} GROUP BY comid";
$showcomtotal = mysql_query($query_showcomtotal, $pop) or die(mysql_error());
if($row = mysql_fetch_array($result)){
print_r($result);
}

ببین اون چیزی رو که میخوای رو برمیگردونه؟

masiha68
یک شنبه 06 اسفند 1391, 19:01 عصر
ممنوم
ولی چیزی رو بر نمی گردونه
اون دستور if اونجا قرار چیکار کنه ؟؟؟
به نظرم باید از یه حلقه ی ویل استفاده بشه که تموم اعداد رو بخونه و بعد از بین اونا بیشترین رو چاپ کنه

plague
دوشنبه 07 اسفند 1391, 02:04 صبح
ممنوم
ولی چیزی رو بر نمی گردونه
اون دستور if اونجا قرار چیکار کنه ؟؟؟
به نظرم باید از یه حلقه ی ویل استفاده بشه که تموم اعداد رو بخونه و بعد از بین اونا بیشترین رو چاپ کنه

اونی که دوستمون گزاشته تقریبا کد درستیه ولی یکم زیادی پیچیده کرده دیگه نیازی به group by نداره
شما نیاز نداری حلقه بزاری چون با استفاده از max توی کوئریت خوده دیتابیس بیشترین رو برمیگردونه
یا راه ساده تر که اگه ایندکس گزاری نکرده باشی دیتابیس رو سریع تر هم هست احتمالا !


$query_showcomtotal = "SELECT comtotal FROM `comment` where comid=$lop order by comtotal desc limit 1";