ถามเรื่อง pager_query ครับ
February 16, 2010
ผมต้องการให้แสดงชื่อ user ในตารางครับ แต่ว่าชื่อถูกเก็บเป็น User ID ทีนี้ปัญหาคือ ใน 1 แถว มี 2 user ID เวลาผมเรียก จะได้ชื่อ User ที่ซ้ำกันทั้ง 2 field ครับ
อันนี้ โค้ตเดิมนะครับ อันที่แก้ผมลบไปหมดแล้ว ============
$output =' ';
$sql = "SELECT cgname, u_name, u_name2 FROM {cg}";
$limit = 20;
$header = array(
array('data' => t('ชื่อสาขา'), 'field' => 'cgname'),
array('data' => t('หัวหน้า'), 'field' => 'u_name' ),
array('data' => t('รองหัวหน้า'), 'field' => 'u_name2' )
);
$tablesort = tablesort_sql ($header);
$result = pager_query($sql . $tablesort,$limit);
$rows = array();
//$p_user = array();
while ( $item = db_fetch_object ( $result )) {
$rows [] = array(
( $item -> cgname),
( $item -> u_name),
( $item -> u_name2 ));
};
if (! $rows ) {
$rows [] = array(array( 'data' => t( '' ), 'colspan' => 3 ));
}
$output .= theme ( 'table' , $header , $rows );
$output .= theme ( 'pager' , NULL , $limit , 10 );
return $output ;


เท่าที่ดู ไม่น่าเกี่ยวกับ
เท่าที่ดู ไม่น่าเกี่ยวกับ pager_query() นะครับ แต่เป็นตอน join กับตาราง users ไม่ถูกต้อง เช่น ถ้าเป็น sql ธรรมดา ก็น่าจะเป็น
select cg.*, u1.name, u2.name
from cg
join users as u1 on cg.u_name = u1.uid
join users as u2 on cg.u_name2 = u2.uid
พี่ ball.in.th ครับ
พี่ ball.in.th ครับ ผมยังมือใหม่นะครับ คือว่า ผม JOIN ตารางไม่ได้ครับ เพราะว่า ใน 1 Record นั้นมี 2 uid ผมสามารถเรียกให้แสดง uid ได้ แต่ว่าที่ผมต้องการคือเอาชื่อผู้ใช้มาแสดง (ลองหลายแบบแล้ว ทำไม่ได้สักที)
จากโค้ตของพี ball.in.th นั้นผมเอาไปใช้ดูแล้วนะครับ แต่ไม่ผ่านครับ ฟ้องว่า Syntax ไม่ถูกต้อง แล้วก็ปรับแก้ ไปๆ มๆ ก็ยังไม่ได้ครับ
สอบถามพี่ ball.in.th อีกสักนิดนะครับ จากโค้ด SQL ของพี่ u1.name, u2.name อันนี้เป็นตัวแปรใหม่ใช่หรือไม่
ยังก็ขอความช่วยเหลือด้วยนะครับ ขอบคุณทุก ๆ ความคิดเห็นครับ
เป็น SQL join ธรรมดา ลองดูใน
เป็น SQL join ธรรมดา ลองดูใน MySql ก็ได้ครับ
ปล. น่าจะลองหาหนังสือเกี่ยวกับ Database มาศึกษาดูครับ ไม่งั้นจะออกแบบตารางและเรียกใช้งานได้ไม่ถูกต้องครับ
งงอ่า
งงอ่า ต้องการอะไรไม่เข้าใจ
ถ้าจะจอยตารางก็ต้องจอยเป็นชื่อฟิลล์ตารางไม่ใช่หรอ?
SELECT * FORM cg JOIN Users JOIN t1 WHERE t1.field= Users.field AND (t1.field = cg.u_name OR t1.field = cg.u_name2)
แบบนี้มั้ง เข้าใจถูกเปล่าไม่รู้ ลองดูเงื่อนไขตามท้ายอีกที่นะคะ