php_love
سه شنبه 21 شهریور 1391, 13:03 عصر
سلام دوستان
برای مشخص کردن رتبه کاربران , تو دستور مای اس کیو ال امتیازشون رو بر اساس نزولی DESC مرتب کردم و شد مثلا این :
+------+--------+
|Score | User |
+------+--------+
| 3459 | 117 |
| 3432 | 85 |
| 693 | 70 |
| 450 | 215 |
| 388 | 300 |
+------+--------+
حالا میخوام تو خروجی مای اس کیو الم یه ستون دیگه قرار بگیره و شماره ردیف به صورت صعودی درش درج بشه .
یعنی بشه این :
+------+--------+
R |Score | User |
+------+--------+
1 | 3459 | 117 |
2 | 3432 | 85 |
3 | 693 | 70 |
4 | 450 | 215 |
5 | 388 | 300 |
+------+--------+
اما از اونجایی که یاد نداشتم این امر چطوری صورت میگیره بعد از سلکتی که زدم با php این دستور رو نوشتم
$query = Select_Winners();
$i = 1;
while($item = mysql_fetch_assoc($query))
{
Update_Winner($i,$item["User_Id"]);
$i++;
}
اما مشکلی که دارم اینکه از اونجایی که تعداد کاربرا خیلی بالاست , سرور فقط می تونم 40% از امتیاز کاربرا رو محاسبه کنه و بقیه کاربرا بدون امتیاز می مونن .
البته این دستور هم هست :
SET @row:=0;
SELECT @row:=@row + 1,... FROM
اما این دستور شماره واقعی رکورد تو دیتا بیس رو نشون میده مثلا میشه این :
+------+--------+
R |Score | User
+------+--------+
115 | 3459 | 117
5 | 3432 | 85
81 | 693 | 70
32 | 450 | 215
43 | 388 | 300
+------+--------+
دیگه نمی دونم چی کار کنم . گفتم از دستور LIMIT استفاده کنم , اما برای این امر حتما باید شماره ردیف تو خروجی مای اس کیو ال باشه .
شدیدا به کمک احتیاج دارم . ..
برای مشخص کردن رتبه کاربران , تو دستور مای اس کیو ال امتیازشون رو بر اساس نزولی DESC مرتب کردم و شد مثلا این :
+------+--------+
|Score | User |
+------+--------+
| 3459 | 117 |
| 3432 | 85 |
| 693 | 70 |
| 450 | 215 |
| 388 | 300 |
+------+--------+
حالا میخوام تو خروجی مای اس کیو الم یه ستون دیگه قرار بگیره و شماره ردیف به صورت صعودی درش درج بشه .
یعنی بشه این :
+------+--------+
R |Score | User |
+------+--------+
1 | 3459 | 117 |
2 | 3432 | 85 |
3 | 693 | 70 |
4 | 450 | 215 |
5 | 388 | 300 |
+------+--------+
اما از اونجایی که یاد نداشتم این امر چطوری صورت میگیره بعد از سلکتی که زدم با php این دستور رو نوشتم
$query = Select_Winners();
$i = 1;
while($item = mysql_fetch_assoc($query))
{
Update_Winner($i,$item["User_Id"]);
$i++;
}
اما مشکلی که دارم اینکه از اونجایی که تعداد کاربرا خیلی بالاست , سرور فقط می تونم 40% از امتیاز کاربرا رو محاسبه کنه و بقیه کاربرا بدون امتیاز می مونن .
البته این دستور هم هست :
SET @row:=0;
SELECT @row:=@row + 1,... FROM
اما این دستور شماره واقعی رکورد تو دیتا بیس رو نشون میده مثلا میشه این :
+------+--------+
R |Score | User
+------+--------+
115 | 3459 | 117
5 | 3432 | 85
81 | 693 | 70
32 | 450 | 215
43 | 388 | 300
+------+--------+
دیگه نمی دونم چی کار کنم . گفتم از دستور LIMIT استفاده کنم , اما برای این امر حتما باید شماره ردیف تو خروجی مای اس کیو ال باشه .
شدیدا به کمک احتیاج دارم . ..