PHP เรียงลำดับ จากคะแนนออกมาเป็นตัวลำดับชนะเลิศ รองชนะเลิศ
query น่าจะประมาณนี้
Code (PHP)
$sql ="SELECT (case fieldลำดับ
when '1' then 'ชนะเลิศ'
when '2' then 'รองชนะเลิศอันดับหนึ่ง'
when '3' then 'รองชนะเลิศอันดับสอง'
else fieldลำดับ end) AS fieldลำดับ ";
ประวัติการแก้ไข 2016-09-18 07:49:15
Date :
2016-09-18 07:48:25
By :
thesin18598
ทำระบบแข่งขันวิชาการหรือครับ
ค่าคะแนนที่มากสุดเรียงลำดับลงมา
Code (PHP)
if($s==1){
echo "ชนะเลิศ";
} elseif($s==2){
echo "รองชนะเลิศอันดับ 1";
} elseif($s==3){
echo "รองชนะเลิศอันดับ 2";
} else {
echo "$s";
}
ประมาณนี้หรือเปล่า
Date :
2016-09-18 20:33:23
By :
LAGO
ตรงคะะแนน 66 ทำไงให้มันได้ ลำดับ 5 เ่ากันแล้ววิ่งไป 7
Date :
2016-09-18 20:51:53
By :
cs45mcru
ต้องเอาค่าออกมาเป็น array ครับ
Date :
2016-09-18 21:04:32
By :
LAGO
ตอบความคิดเห็นที่ : 5 เขียนโดย : cs45mcru เมื่อวันที่ 2016-09-18 20:51:53
สร้างตัวแปรเก็บเลข อันดับ ที่ได้เอาไว้ครับ
แล้วตรวจสอบว่า คะแนน เรคอร์ดปัจจุบันเท่ากับ เรคอร์ดก่อนหน้าหรือเปล่า
ถ้าเท่ากัน ให้คงอันดับเดิม
ถ้าไม่เท่า บวก 1 ไปตามปกติครับ
$prev_score = 0;
$prev_no = 0;
.
.
.
while(...............){
.
.
.
.
if(คะแนนปัจจุบัน != $prev_score){
อันดับที่ได้ปัจจุบัน++;
}
.
.
$prev_score = คะแนนปัจจุบัน;
$prev_no = อันดับที่ได้ปัจจุบัน
}
ปล. จริงๆไม่ใช่เทียบคะแนนปัจจุบัน แต่ต้องเทียบ เหรียญปัจจุบัน กับ เหรียญเรคอร์ดก่อนหน้า
เพราะคะแนนอาจจะต่างกัน แต่เหรียญเท่ากัน ก็ยังคงอันดับเดียวกัน ใช่หรือไม่???
ประวัติการแก้ไข 2016-09-19 09:31:08
Date :
2016-09-19 09:29:30
By :
{Cyberman}
รองดูคับ ผมเขียนแบบลวกๆนะคับ
Code (PHP)
$num=array(99,88,88,77,66,66,54);
function check($v){
if($v==1)
{$return="ชนะเลิศ";}
elseif($v==2)
{$return="รองนะเลิศอันดับ ๑";}
else
{$return=$v;}
return $return;
}
for($i=0;$i<count($num);$i++)
{
$x=null;
if($scroll==$num[$i])
{
$x=$a;
}
else
{
$x=$i;
$a=$i;
}
echo ($i+1)." = ".$num[$i]." = ".check($x+1)."<br>";
$scroll=$num[$i];
}
Date :
2016-09-19 11:29:18
By :
siammbk
Code (PHP)
<table border=1 >
<tr><th>Position</th><th>Mark</th></tr>
<?php
$pos_name('', 'เหรียณทอง','เหรียณเงิน','เหรียณทองแดง');
$position = 0; $org_index = 0; $old_mark = 0;
while($ro=$rs->fetch_assoc()){
$org_index++;
if($old_mark!=$ro['mark']) $position = $org_index;
$old_mark = $ro['mark'];
echo '<tr><td>',
implode('</td><td>', array($position<4? $pos_name[$position] : $position, $old_mark)),
'</td></tr>';
}
?></table>
Date :
2016-09-19 13:52:25
By :
Chaidhanan
ขอบคุณทุก ความคิดเห็น สุดท้าย คงต้องคุยจะต้องการเรียงแบบไหน
Date :
2016-09-19 14:36:23
By :
cs45mcru
Load balance : Server 01