Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > รบกวนช่วยดูเรื่องนับข้อมูลทั้งหมดใน filed ให้หน่อยครับ



 

รบกวนช่วยดูเรื่องนับข้อมูลทั้งหมดใน filed ให้หน่อยครับ

 



Topic : 055288



โพสกระทู้ ( 28 )
บทความ ( 0 )



สถานะออฟไลน์




ผมทำฐานข้อมูลเกี่ยวกับกีฬา แล้วมันต้องนับว่าในแต่ละ field นั้นมีข้อมูลแต่ละอย่างอยู่เท่าไร (ใช้ภาษา php ครับ) ฐานข้อมูลประมาณนี้ครับ

Table m001
| id | player | action | ballposition |
| 1 | A | serve | 14 |
| 2 | B | return | 47 |
| 3 | A | return | 16 |
| 4 | B | return | 38 |
| 5 | A | serve | 15 |
.
.
.

นับ field อื่นไม่มีปัญหาครับเพราะเขียน WHERE ในคำสั่ง SELECT ได้เลย เช่น

$sql = "SELECT COUNT(player) FROM m001 WHERE player = 'A'; ";
$conut = mysql_query($sql);
$result = mysql_result($count,0);
echo "$result"; //ผลลัพธ์ที่ออกมาก็จะเป็นจำนวนของ player A ใน DB ครับ เช่น 79


แต่มาติดตรงที่ฟิลด์ ballposition เพราะในฟิลด์นี้มันไม่ได้มีข้อมูลแค่ 2 อย่างเหมือนฟิลด์อื่น ฟิลด์นี้มีตั้งแต่ 0 - 48 อ่ะครับ
อยากทราบว่ามันต้องวนลูป หรือว่าเขียนคำสั่งยังไงครับ ถึงจะนับข้อมูลทั้งหมดตั้งแต่ 0 - 48 ออกมาได้อ่ะครับ

ขอบคุณมากครับ



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-01-30 05:59:47 By : BellBigFace View : 958 Reply : 11
 

 

No. 1

Guest


group by ballposition ใส่ไปด้วยครับ
ให้นับแบบรวมกลุ่มของ ballposition






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-30 07:13:20 By : .-.
 


 

No. 2



โพสกระทู้ ( 355 )
บทความ ( 0 )



สถานะออฟไลน์


ต้องดูนะครับว่าต้องการเงื่อนไขแบบไหน ตรงนี้ไม่ใช่เรื่องยากครับ เพียงแต่เราต้องลำดับเงื่อนไขของเราก่อนเท่านั้น ไมันไม่ได้แตกต่างจากฟิลด์อื่นๆเท่าไหร่เลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-30 16:05:47 By : zankumuro
 

 

No. 3



โพสกระทู้ ( 28 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณมากๆครับ
ผมลองใส่ 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
 


 

No. 4



โพสกระทู้ ( 5,149 )
บทความ ( 26 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ถ้า group โดยไม่วนลูป มันก็ได้ค่าเดียวหละครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-30 21:06:39 By : deawx
 


 

No. 5



โพสกระทู้ ( 355 )
บทความ ( 0 )



สถานะออฟไลน์


ที่ต้องการประมาณนี้หรือป่าว

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
 


 

No. 6



โพสกระทู้ ( 28 )
บทความ ( 0 )



สถานะออฟไลน์


ทำได้แล้วครับ

ขอบคุณ คุณ Yoshikuni Masato มากๆครับ ^^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-31 07:09:02 By : BellBigFace
 


 

No. 7



โพสกระทู้ ( 28 )
บทความ ( 0 )



สถานะออฟไลน์


ขอถามเพิ่มหน่อยครับ

ผมลองเปลี่ยนจากนับฟิลด์ของ 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
 


 

No. 8



โพสกระทู้ ( 37 )
บทความ ( 0 )



สถานะออฟไลน์


ขอตอบตั้งแต่คำถามแรกเลยละกันนะ

นับจำนวนข้อมูลแบบง่ายๆ
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
 


 

No. 9



โพสกระทู้ ( 28 )
บทความ ( 0 )



สถานะออฟไลน์


ขอถามต่ออีกนิดนะครับคุณ Rei (หวังว่าจะไม่รำคาญกันไปก่อนนะครับ)

ผมลองเก็บค่าที่นับ zone1 ไว้ในไว้ในตัวแปรที่ชื่อว่า $num_zone1 เพื่อจะเอาไปคำนวณต่อโดยโค้ดคือ
$num_zone1 = $array_temp[0];
พอลองสั่งสั่งแสดงค้าโดย echo "$num_zone1 <br>"; มันไม่มีไรออกมาเลยครับ
ลองเอามาบวกกันเองก็ไม่ได้ครับ ผมต้องเก็บยังไงดีครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-02 13:25:26 By : BellBigFace
 


 

No. 10



โพสกระทู้ ( 37 )
บทความ ( 0 )



สถานะออฟไลน์


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
 


 

No. 11



โพสกระทู้ ( 28 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณคุณ Rei งามๆอีกทีเลยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-02-02 20:47:34 By : BellBigFace
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนช่วยดูเรื่องนับข้อมูลทั้งหมดใน filed ให้หน่อยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่