PDA

View Full Version : سوال در مورد کدهای اس کیو ال در php



tecnocomputer
جمعه 21 اسفند 1388, 16:54 عصر
با سلام. من یه جدول دارم تو بانک اطلاعاتیم به صورت زیر:


http://rapidz.ir/images/793f9ivt26h3x407vwv.gif


این بانکم در مورد یک بازی انلاینه، کاربر بازی میکنه بعد از بازی اسمش رو وارد میکنه و رکوردش ثبت میشه id_2ost همون اسمشه، r_kord همون رکوردیه که به دست میاره.
بعضیا ممکنه چند بار بازی کنن مثلا ahoora دو بار بازی کرده.
میخام پنج نفر اول رو بست بیارم یعنی پنج نفر اولی که بالا ترین رکورد رو دارند چه کد sqli بنویسم؟

tecnocomputer
جمعه 21 اسفند 1388, 17:21 عصر
درست میگه اگه با order لیست rekord رو بگیریم ممکنه یک نفر دو بار رکورد بالایی داشته باشه. مثلا
ahoora رکوردش 12 باشه
farhad رکوردش 15 باشه
ahoora یک بار دیگه 14 باشه
و...

اگه با order بخاییم کار کنیم یه چیزی تو این مایه ها در میاد
اول) farhad
دوم) ahoora
سوم) ahoora

ولی نمیخام یک اسم دوبار تکرار بشه. میخام مثلا Ahoora فقط بالاترین رکوردش حساب بشه..

tecnocomputer
جمعه 21 اسفند 1388, 18:11 عصر
منظورم رو نگرفتید
طرف چند بار بازی میکنه هر دفعه یک رکوردی میاره میخام رکورد بالاترش رو حساب کنه
هیچ کاریش نمیشه کرد؟

tecnocomputer
جمعه 21 اسفند 1388, 21:05 عصر
مرسی
یه کاریش میکنم:گریه:

funpatogh
جمعه 21 اسفند 1388, 21:28 عصر
<?php
$i=0;
$query=mysql_query("select distinct username from record order by userid limit 0,100")or die(mysql_error());
while(list($username)=mysql_fetch_row($query)){
echo ++$i." - ".$username."<br>";
}

?>

tecnocomputer
جمعه 21 اسفند 1388, 21:33 عصر
یه ذره در مورد کد توضیح میدی!
من که میگم مورد داره حالا توضیح بده بینیم چه جوریاس:خجالت:

funpatogh
جمعه 21 اسفند 1388, 21:44 عصر
شرمنده اون عکس رو من ندیدم که گزاشتی الان براتون مینویسم

funpatogh
جمعه 21 اسفند 1388, 21:46 عصر
<?php
$i=0;
$query=mysql_query("select distinct `id_2ost` from `table` order by `r_kord` desc limit 0,5")or die(mysql_error());
while(list($username)=mysql_fetch_row($query)){
echo ++$i."-".$username."<br>";
}


?>



این میاد 5 تا کاربری آخری که بازی کرده اند رو بر اساس رکورد مرتب میکنه منتها اگه از هر کاربری 10 تا هم بشه فقط یکیشون رو نمایش میده که آخرین رکوردش خواهد بود

tecnocomputer
جمعه 21 اسفند 1388, 22:21 عصر
کد شما 5 کاربر اخر رو میگیره! ولی ممکنه خیلی قبل تر یه کاربر بازی کرده باشه یه رکورد بالاتری نسبت به این 5 کاربر بگیره!

tecnocomputer
جمعه 21 اسفند 1388, 22:22 عصر
فکر کنم خیال کردی من میخام 5 کاربر اخر رو نمایش بده! نه من میخام از بین همه ی کاربران اون کاربرانی که بیشترین رکورد رو دارن نمایش بده.

funpatogh
شنبه 22 اسفند 1388, 01:58 صبح
order by r_kord بر اساس امتیاز مرتب میکنه
شما اصلا تست میکنید یا همین جوری جواب می دهید؟

tecnocomputer
شنبه 22 اسفند 1388, 10:04 صبح
عزیز همین الان من از همین order استفاده میکنم کار هم میکنه ولی یه مشکله ممکنه دوبار یک نفر بازی کرده باشه. اینجوری ممکنه یه نفر دوبار تو 5 نفر اول نمایش داده بشه
مثلا این بازی رو بین از order استفاده کردم
http://www.2ost.com/game/02

tecnocomputer
شنبه 22 اسفند 1388, 14:33 عصر
بعله.........

funpatogh
شنبه 22 اسفند 1388, 20:59 عصر
من فکر میکنم که شما اصلا تست نمی کنید ها فقط سوال می پرسید


distinct `id_2ost`

نام های تکراری و غیر تکراری رو فقط یکبار نمایش میده

tecnocomputer
شنبه 22 اسفند 1388, 21:34 عصر
واقعا ببخشید از بس اعصابم خراب بود خیلی دقیق نگاه نکردم، کدتون درسته فقط از id_2ost یک همنام رو نمایش میده ولی نمیدونم چرا خروجی دست نشون نمیده. بیخیال (کدتون درسته!!)
روش دیگه ای رو پیش گرفتم. ممنونم از همتون