รบกวนช่วยดูเรื่องนับข้อมูลทั้งหมดใน filed ให้หน่อยครับ
group by ballposition ใส่ไปด้วยครับ
ให้นับแบบรวมกลุ่มของ ballposition
Date :
2011-01-30 07:13:20
By :
.-.
ต้องดูนะครับว่าต้องการเงื่อนไขแบบไหน ตรงนี้ไม่ใช่เรื่องยากครับ เพียงแต่เราต้องลำดับเงื่อนไขของเราก่อนเท่านั้น ไมันไม่ได้แตกต่างจากฟิลด์อื่นๆเท่าไหร่เลย
Date :
2011-01-30 16:05:47
By :
zankumuro
ขอบคุณมากๆครับ
ผมลองใส่ group by ballposition เข้าไปแล้วครับแต่ผลลัพธ์ที่ออกมามันได้ค่าเดียว เช่น 5 แต่ที่ผมอยากได้คือนับว่า
ballposition ตำแหน่ง 0 มีอยู่...ครั้ง ตำแหน่งทีี 1 มีอยู่...ครั้ง ... ไปจนถึงตำแหน่งที่ 48 อ่ะครับ
โค้ดที่ผมเขียนคือ
$sql = "SELECT COUNT(ballposition) FROM m001 GROUP BY ballposition ";
$conut = mysql_query($sql);
$result = mysql_result($count,0);
echo "$result"
ผมไม่รู้ว่าต้องเขียนคำสั่ง WHERE ว่าอะไรดีครับ มือใหม่ PHP มากครับ
Date :
2011-01-30 20:41:57
By :
BellBigFace
ถ้า group โดยไม่วนลูป มันก็ได้ค่าเดียวหละครับ
Date :
2011-01-30 21:06:39
By :
deawx
ที่ต้องการประมาณนี้หรือป่าว
Code (PHP)
for($i=0; $i<48; $i++){
$sql = "SELECT COUNT(player) FROM m001 WHERE ballposition='$i'";
$conut = mysql_query($sql);
$result = mysql_result($count,0);
echo "ตำแหน่งที่ $i มี $result";
}
Date :
2011-01-30 22:35:50
By :
zankumuro
ทำได้แล้วครับ
ขอบคุณ คุณ Yoshikuni Masato มากๆครับ ^^
Date :
2011-01-31 07:09:02
By :
BellBigFace
ขอถามเพิ่มหน่อยครับ
ผมลองเปลี่ยนจากนับฟิลด์ของ ballposition ทั้งหมดตั้งแต่ 0-48 เป็นนับเป็นโซนแทนครับ
เช่น ballposition ตำแหน่งที่ 2,3,4,5,8,9,10,11 กำหนดให้เป็น โซน 1 เพราะถ้านับทั้งหมด 49 ตำแหน่งมันเยอะไปครับ
Code (PHP)
for ($j = 0; $j <= 7; $j++) {
$zone1 = array(2,3,4,5,8,9,10,11);
$sql_zone1 = "SELECT COUNT(ballposition) FROM $tblname WHERE ballposition='$zone1[$j]';";
$sql_count_zone1 = mysql_query($sql_zone1);
$num_zone1 = mysql_result($sql_count_zone1,0,0);
echo "ตำแหน่งที่ $zone1[$j] มี $num_zone1 <br>";
}
ผลที่ออกมาก็จะเป็น ประมาณนี้ครับ
ตำแหน่งที่ 2 มี 5
ตำแหน่งที่ 3 มี 4
ตำแหน่งที่ 4 มี 3
ตำแหน่งที่ 5 มี 4
ตำแหน่งที่ 8 มี 1
ตำแหน่งที่ 9 มี 3
ตำแหน่งที่ 10 มี 7
ตำแหน่งที่ 11 มี 4
ปัญหาคือผมต้องการจะนับรวมจำนวนทั้งหมดในโซน 1 ครับ ให้ผลลัพธ์ออกมาประมาณว่า ตำแหน่ง Zone1 มีทั้งหมด 31
ต้องเขียนยังไงหรอครับ
Date :
2011-01-31 19:18:40
By :
BellBigFace
ขอตอบตั้งแต่คำถามแรกเลยละกันนะ
นับจำนวนข้อมูลแบบง่ายๆ
Code (PHP)
$query = "SELECT ballposition, COUNT(*) FROM m001 GROUP BY ballposition";
$result = mysql_query($query); print mysql_error();
while ($array_temp = mysql_fetch_row($result))
print 'ตำแหน่งที่ ' . $array_temp[0] . ' มี ' . $array_temp[1] . "<br />";
ผลที่ออกมาก็จะนับจำนวน ballposition ทั้งหมด อย่างละแถว ประมาณนี้
ตำแหน่งที่ 2 มี 5
ตำแหน่งที่ 3 มี 4
ตำแหน่งที่ 4 มี 3
ตำแหน่งที่ 5 มี 4
ตำแหน่งที่ 8 มี 1
...
สำหรับกรณี นับข้อมูลทั้งหมดที่อยู่ใน Zone1 แบบไม่แยก ballposition (2,3,4,5,8,9,10,11) นั้น ให้เขียน Query ดังนี้
Code (PHP)
SELECT COUNT(*) FROM $tblname WHERE ballposition IN (2,3,4,5,8,9,10,11)
นับจำนวน records ทั้งหมดที่ ballposition อยู่ในเซต 2,3,4,5,8,9,10,11 จ๊ะ
Date :
2011-02-02 02:30:43
By :
Rei
ขอถามต่ออีกนิดนะครับคุณ Rei (หวังว่าจะไม่รำคาญกันไปก่อนนะครับ)
ผมลองเก็บค่าที่นับ zone1 ไว้ในไว้ในตัวแปรที่ชื่อว่า $num_zone1 เพื่อจะเอาไปคำนวณต่อโดยโค้ดคือ
$num_zone1 = $array_temp[0];
พอลองสั่งสั่งแสดงค้าโดย echo "$num_zone1 <br>"; มันไม่มีไรออกมาเลยครับ
ลองเอามาบวกกันเองก็ไม่ได้ครับ ผมต้องเก็บยังไงดีครับ
Date :
2011-02-02 13:25:26
By :
BellBigFace
Code (PHP)
$query = "SELECT ballposition, COUNT(*) FROM m001 GROUP BY ballposition";
$result = mysql_query($query); print mysql_error();
while ($array_temp = mysql_fetch_row($result)) {
print 'ตำแหน่งที่ ' . $array_temp[0] . ' มี ' . $array_temp[1] . "<br />";
$num_zone1[$array_temp[0]] = $array_temp[1];
}
print "<pre>"; print_r($num_zone1); print "</pre>";
ไม่รู้ใช่แบบที่ต้องการหรือเปล่านะคะ จะได้ตัวแปร $num_zone1 เป็น array เก็บค่าของแต่ละ ballposition ไว้
ถ้าจะเอาค่าทั้งหมดรวมกัน ก็ array_sum($num_zone1);
หรือจะแยกแต่ละ ballposition ก็ $num_zone1[ballposition]
Date :
2011-02-02 18:44:49
By :
Rei
ขอบคุณคุณ Rei งามๆอีกทีเลยครับ
Date :
2011-02-02 20:47:34
By :
BellBigFace
Load balance : Server 00