ลบกวนถามหน่อยครับ Joomla เรียกใช้ count ยังไงหรอครับ

ถามตอบ ปัญหาการพัฒนา Extension ไม่ว่าจะเป็น Module plugin Component หรือ แม้แต่ template การปรับแต่งโค้ด Joomla ต่างๆ ทุกเวอร์ชั่น 1.5 2.5 หรือ 3.x

Moderators: mindphp, ผู้ดูแลกระดาน

User avatar
pond
PHP Super Hero Member
PHP Super Hero Member
Posts: 570
Joined: 25/05/2016 9:44 am

ลบกวนถามหน่อยครับ Joomla เรียกใช้ count ยังไงหรอครับ

Post by pond »

ลบกวนถามหน่อยครับ Joomla เรียกใช้ count ยังไงหรอครับคือตอนนี้ผม group by ได้อย่างเดียว แต่ไม่รู้จะเก็บตัวแปลไปใช้ฝั่ง view ยังไงครับช่วยทีครับเลยอยากรุ้ว่าเขียนแบบนี้ถูกมั้ยครับหรือควรปรับตรงไหนหรือมีข้อแนะนำดีๆ
นี่codeในส่วนของ model คับ

Code: Select all

     protected function getListQuery() {
        $db = $this->getDbo();
        $query = $db->getQuery(true);
        $query->select( array('com_name', 'version','COUNT(*) as count_rec') );
        $query->from($db->quoteName('#__zzzz_track', 'a'));
        $query->group($db->quoteName('com_name','version'));

User avatar
tsukasaz
PHP VIP Members
PHP VIP Members
Posts: 12188
Joined: 18/04/2012 9:39 am

Re: ลบกวนถามหน่อยครับ Joomla เรียกใช้ count ยังไงหรอครับ

Post by tsukasaz »

1. แทนที่จะเขียน

Code: Select all

$db->quoteName() 
เขียนสั้นๆ ได้ เปลี่ยนเป็น

Code: Select all

$db->qn() 
2. อันนี้ผมงง :lol: น่าจะใช้ผิดนะ มันใช้เป็น ตัวแรก ชื่อคอลัมน์ ตัวที่สอง คือ ชื่อแทน (AS) http://www.w3schools.com/sql/sql_alias.asp

Code: Select all

$query->group($db->quoteName('com_name','version')); 
ผลลัพท์ที่ได้คือ

Code: Select all

GROUP BY com_name AS version
3. ลองเขียนแบบ sql ธรรมดา ให้ผ่านก่อน ค่อยมาแปลงเป็นแบบ Joomla ครับ
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)

User avatar
pond
PHP Super Hero Member
PHP Super Hero Member
Posts: 570
Joined: 25/05/2016 9:44 am

Re: ลบกวนถามหน่อยครับ Joomla เรียกใช้ count ยังไงหรอครับ

Post by pond »

ขอบคุณคับ

User avatar
pond
PHP Super Hero Member
PHP Super Hero Member
Posts: 570
Joined: 25/05/2016 9:44 am

Re: ลบกวนถามหน่อยครับ Joomla เรียกใช้ count ยังไงหรอครับ

Post by pond »

ได้แล้วครับ
วิธีเช็คว่า select แบบธรรมดาว่าทำถูกรึเปล่า ให้เอา query มา echo ก่อนที่จะรีเทริน มาดูก่อนครับ

Code: Select all

echo $query->__toString();
แล้วเอา code นั้นไปลอง ในฐานข้อมูลดูว่าถูกรึเปล่าถ้าไม่ถูกให้ลองจากฐานข้อมูลให้ได้ตามต้องการก่อนแล้วค่อยมาใช้ใน joomla

ยกตัวอย่างจากโจทย์ ให้แสดง ชื่อคอม คอมมีกี่เวอร์ชั่น คอมกี่โดเมน *(ใช้ distinct หาชื่อที่ซ้ำ count หาว่ามีกี่ตัว)
แทน SELECT

Code: Select all

$query->select('com_name,COUNT(DISTINCT(version)) as countversion,COUNT(DISTINCT(domain)) as countdomain');
แทน FROM

Code: Select all

$query->from($db->qn('#__zzz_track', 'a'));
แทน GROUP BY

Code: Select all

$query->group($db->qn('com_name'));

Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “Joomla Development”

Who is online

Users browsing this forum: No registered users and 2 guests