PHP Ionic Angularjs Phonegap AJAX Javascript CSS MySQL jQuery Forum

รบกวนช่วยเรื่อง json หน่อยครับ

รบกวนช่วยเรื่อง json หน่อยครับ
คือเมื่อคลิกรับค่า id มา จากตาราง project_tbl แล้วแสดงชื่อความต้องการจาก requirement_tbl ทำการนับจำนวน testcase จาก testcase_tbl
ตารางผมมี3ตารางดังนี้ 

ตาราง project_tbl
p_id p_name
1 aaaaa

ตาราง requirement_tbl
req_id p_id req_name
1 1 bbbbb
2 1 ccccc

 ตาราง testcase_tbl
tc_id p_id req_id tc_name
1 1 1 ddddd
2 1 1 eeeee


อยากให้เป็นประมาณนี้ครับ ส่งออกข้อมูลตารางแรก
ชื่อโปรเจค จำนวนความต้องการ จำนวนtestcase
aaaaa 2 2

ผมใช้ json 
<?php
    header("Content-type: text/html; charset=UTF-8");
    header('Cache-Control: no-cache');
    header('Pragma: no-cache');
    header('Expires: 0');
    include("connect_project.php");
    $where = "";
    $sql = "SELECT project_tbl.p_id AS p_id,p_name,COUNT(tc_id) AS tc_id FROM testcase_tbl 
    INNER JOIN project_tbl ON project_tbl.p_id = testcase_tbl.p_id GROUP BY project_tbl.p_id $where";
    $result = runSQL($sql);
    $numrow = countRec('p_id','project_tbl',$where);
    if($numrow>0){
        $json = "";
        $json .= "{";
        $json .= ""aaData":[";
        $rc = false;
        while ($row = mysql_fetch_array($result)) {
            if ($rc) $json .= ",";
            $json .= "[";
            //$json .= """.$row['p_name'].""";
            $json .= """."<a href=javascript:openWindow('?id=".$row['p_id']."')>".$row['p_name']."</a>".""";
            $json .= ","".number_format($row['tc_id']).""]";
            $rc = true;
        }
            $json .= "]";
            $json .= "}";
            echo $json;
    }
?>
แล้วเมื่อคลิกที่ชื่อ aaaaa อยากให้เป็นประมาณนี้ ตารางที่สอง
ชื่อความต้องการ จำนวนtestcase
bbbbb 2
ccccc 0

ผมใส่code ไปประมานนี้
<?php
    header("Content-type: text/html; charset=UTF-8");
    header('Cache-Control: no-cache');
    header('Pragma: no-cache');
    header('Expires: 0');
    include("connect_project.php");
        //รับ pk ที่มาจากหน้า display
    $id = $_GET['id'];
    $where = "INNER JOIN requirement_tbl ON requirement_tbl.req_id = testcase_tbl.req_id AND requirement_tbl.p_id = testcase_tbl.p_id WHERE testcase_tbl.p_id = $id";
    $sql = "SELECT requirement_tbl.req_id AS req_id,req_name,COUNT(tc_id) AS tc_id FROM testcase_tbl $where";
    $result = runSQL($sql);
    $numrow = countRec('requirement_tbl.req_id','testcase_tbl',$where);
    if($numrow>0){
        $json = "";
        $json .= "{";
        $json .= ""aaData":[";
        $rc = false;
        while ($row = mysql_fetch_array($result)) {
            if ($rc) $json .= ",";
            $json .= "[";
            $json .= """.$row['req_name']."</a>".""";
            $json .= ","".number_format($row['tc_id']).""]";
            $rc = true;
        }
            $json .= "]";
            $json .= "}";
            echo $json;
    }
?>
ปัญหาคือ ตารางแรกแสดงข้อมูล แต่ไม่มีการนับจำนวนความต้องการ
ตารางที่สองไม่แสดงข้อมูล

รบกวนพี่ด้วยนะครับผมไม่ค่อยเข้าใจเรื่องนี้อ่าครับว่าจะทำยังไงให้ออกมาตามที่ผมต้องการ

โดย:  Eodza13579 IP: 171.6.143.xxx วันที่: 25-06-2016 เวลา: 14:16:49

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ


  • ( หรือ สามารถทำการ สมัครสมาชิก และล็อกอิน ด้วย ปุ่ม Log in with Facebook ด้านล่าง )
 ความคิดเห็นที่ 19
รายละเอียดโค้ดของผมแปะไว้ในนี้ครับ พี่ช่วยดูให้หน่อย ผมตันจริงๆๆ

http://www.thaicreate.com/php/forum/123633.html#3





โดย:  Eodza13579 IP: 27.130.29.xxx วันที่: 30-06-2016 เวลา: 12:37:55
 ความคิดเห็นที่ 18
$json = '{"aaData":[';

**แก้


โดย:  Suthee Khongnapha IP: 183.89.132.xxx วันที่: 27-06-2016 เวลา: 11:57:59
 ความคิดเห็นที่ 17
แบบนี้น่าจะตรงกับที่ต้องการมากกว่า ถ้าไม่ได้ให้ลองเช็คว่า $_GET['id']; ได้ค่ามามั้ย

$id = $_GET['id'];      
$sql = "SELECT requirement_tbl.req_id,requirement_tbl.req_name FROM  requirement_tbl WHERE requirement_tbl.p_id = $id";    
$result = runSQL($sql); 
$json = "{aaData:[";
while ($row = mysql_fetch_array($result)) {  
    $req_id = $row['req_id'];
    $db = "SELECT * FROM  testcase_tbl WHERE testcase_tbl.req_id =  $req_id";
    $res = runSQL($db); 
    $count = 0;     
    while ($rows = mysql_fetch_array($res)) {  
        $count = $count+$rows['req_id'];
    }
    $json .= '["'.$row['req_name'].'","'.$count.'"],';
}
$json = rtrim($json ,',');
$json .= "]}";
echo $json;


โดย:  Suthee Khongnapha IP: 183.89.132.xxx วันที่: 27-06-2016 เวลา: 11:54:34
 ความคิดเห็นที่ 16
ผมขอ email หน่อยได้ไหมครับ จะได้ส่งไฟล์ทั้งหมดให้ดูครับ เผื่อเข้าใจขึ้นครับ

โดย:  Eodza13579 IP: 171.6.143.xxx วันที่: 26-06-2016 เวลา: 18:28:01
 ความคิดเห็นที่ 15
เหมือนเดิมเลยครับ TT

โดย:  Eodza13579 IP: 171.6.143.xxx วันที่: 26-06-2016 เวลา: 17:16:43
 ความคิดเห็นที่ 14
$id = $_GET['id'];    
$where = "WHERE requirement_tbl.p_id = $id" ;    
$sql = "SELECT requirement_tbl.req_id,requirement_tbl.req_name, COUNT(testcase_tbl.tc_id) AS num_testcase FROM requirement_tbl INNER JOIN testcase_tbl on(testcase_tbl.req_id = requirement_tbl.req_id) $where";    
$result = runSQL($sql); 
$numrow = countRec('*','requirement_tbl INNER JOIN testcase_tbl on(testcase_tbl.req_id = requirement_tbl.req_id)',$where);   

น่าจะแบบนี้ละครับ โทษทีมืนๆ 


โดย:  Suthee Khongnapha IP: 183.89.132.xxx วันที่: 25-06-2016 เวลา: 18:47:52
 ความคิดเห็นที่ 13
ขึ้น error เหมือนเดิมครับ 

โดย:  Eodza13579 IP: 171.6.143.xxx วันที่: 25-06-2016 เวลา: 18:30:11
 ความคิดเห็นที่ 12
บรรทัด $numrow มีปัญหาใช่หรือไม่ครับถ้าใช่ลองแก้เป็นแบบนี้ดูครับ 

$id = $_GET['id'];    
$where = "WHERE requirement_tbl.p_id = $id" ;    
$sql = "SELECT requirement_tbl.req_id,requirement_tbl.req_name, COUNT(testcase_tbl.tc_id) AS num_testcase FROM requirement_tbl INNER JOIN testcase_tbl on(testcase_tbl.req_id = requirement_tbl.req_id) $where";    
$result = runSQL($sql); 
$row = mysql_fetch_array($result);
$numrow = $row["count(*)"];


โดย:  Suthee Khongnapha IP: 183.89.132.xxx วันที่: 25-06-2016 เวลา: 18:26:09
 ความคิดเห็นที่ 11
รันไฟล์ที่สองแล้วมันขึ้นแบบนี้อ่าครับ
Error: could not query dataSELECT requirement_tbl.req_id,requirement_tbl.req_name, COUNT(testcase_tbl.tc_id) AS num_testcase FROM requirement_tbl INNER JOIN testcase_tbl on(testcase_tbl.req_id = requirement_tbl.req_id) WHERE requirement_tbl.p_id =

โดย:  Eodza13579 IP: 171.6.143.xxx วันที่: 25-06-2016 เวลา: 18:02:44
 ความคิดเห็นที่ 10
    $id = $_GET['id'];  
    $where = "WHERE requirement_tbl.p_id = $id" ;  
    $sql = "SELECT requirement_tbl.req_id,requirement_tbl.req_name, COUNT(testcase_tbl.tc_id) AS num_testcase FROM requirement_tbl INNER JOIN testcase_tbl on(testcase_tbl.req_id = requirement_tbl.req_id) $where";  
    $result = runSQL($sql);  


โดย:  Suthee Khongnapha IP: 183.89.132.xxx วันที่: 25-06-2016 เวลา: 17:54:11
 ความคิดเห็นที่ 9
ขอบคุณมากครับ แล้วอีกตารางที่จะต้องส่งค่า primary ไป นี่อะครับ
แล้วเมื่อคลิกที่ชื่อ aaaaa อยากให้เป็นประมาณนี้ ตารางที่สอง
ชื่อความต้องการ จำนวนtestcase
bbbbb 2
ccccc 0
 

{"aaData":[["bbbbb","2"],["ccccc","0"]]}

โดย:  Eodza13579 IP: 171.6.143.xxx วันที่: 25-06-2016 เวลา: 17:40:58
 ความคิดเห็นที่ 8
<?php
    header("Content-type: text/html; charset=UTF-8");
    header('Cache-Control: no-cache');
    header('Pragma: no-cache');
    header('Expires: 0');
    include("connect_project.php");
    $where = "";
    $sql = "SELECT project_tbl.p_id,project_tbl.p_name,COUNT(requirement_tbl.req_id) AS num_requirement, COUNT(testcase_tbl.tc_id) AS num_testcase FROM project_tbl INNER JOIN requirement_tbl on(requirement_tbl.p_id = project_tbl.p_id) INNER JOIN testcase_tbl on(testcase_tbl.req_id = requirement_tbl.req_id) ";
    $result = runSQL($sql);
    $numrow = countRec('p_id','project_tbl',$where);
    if($numrow>0){
        $json = "";
        $json .= "{";
        $json .= ""aaData":[";
        $rc = false;
        while ($row = mysql_fetch_array($result)) {
            if ($rc) $json .= ",";
            $json .= "[";
            $json .= """.$row['p_name'].""";
            $json .= ","".$row['num_requirement'].""";
            $json .= ","".$row['requirement_tbl'].""]";
            $rc = true;
        }
            $json .= "]";
            $json .= "}";
            echo $json;
    }
?>

แบบตัวอย่างที่ให้มาครับ



โดย:  Suthee Khongnapha IP: 183.89.132.xxx วันที่: 25-06-2016 เวลา: 16:46:02
 ความคิดเห็นที่ 7
ผมใช้อันนี้เป็นตัวอย่างอ่ะครับ http://www.tutorialdev.com/php/datatableประยุกต์สร้างลิงค์ภาย/

โดย:  Eodza13579 IP: 171.6.143.xxx วันที่: 25-06-2016 เวลา: 16:19:30
 ความคิดเห็นที่ 6
{"aaData":[{"0":"1","p_id":"1","1":"u0e01u0e32u0e23u0e1eu0e31u0e12u0e19u0e32u0e23u0e30u0e1au0e1au0e08u0e31u0e14u0e01u0e32u0e23u0e2bu0e49u0e2du0e07u0e1eu0e31u0e01","p_name":"u0e01u0e32u0e23u0e1eu0e31u0e12u0e19u0e32u0e23u0e30u0e1au0e1au0e08u0e31u0e14u0e01u0e32u0e23u0e2bu0e49u0e2du0e07u0e1eu0e31u0e01","2":"2","num_requirement":"2","3":"2","num_testcase":"2"}]}

มันออกได้งงมากเลยครับ 


โดย:  Eodza13579 IP: 171.6.143.xxx วันที่: 25-06-2016 เวลา: 16:18:05
 ความคิดเห็นที่ 5
<?php
    header("Content-type: text/html; charset=UTF-8");
    header('Cache-Control: no-cache');
    header('Pragma: no-cache');
    header('Expires: 0');
    include("connect_project.php");
    $where = "";
    $sql = "SELECT project_tbl.p_id,project_tbl.p_name,COUNT(requirement_tbl.req_id) AS num_requirement, COUNT(testcase_tbl.tc_id) AS num_testcase FROM project_tbl INNER JOIN requirement_tbl on(requirement_tbl.p_id = project_tbl.p_id) INNER JOIN testcase_tbl on(testcase_tbl.req_id = requirement_tbl.req_id) ";
    $result = runSQL($sql);
    $numrow = countRec('p_id','project_tbl',$where);
    $res = array();
    if($numrow>0){
        while ($row = mysql_fetch_array($result)) {
            $res[] = $row; 
        }
        echo json_encode(array('aaData' => $res));
    }
?>
ไม่แน่ใจว่าใช้ได้ไหม ไม่ได้ลองครับ

โดย:  Suthee Khongnapha IP: 183.89.132.xxx วันที่: 25-06-2016 เวลา: 16:06:07
 ความคิดเห็นที่ 4
เวลารันไฟล์อยากให้เป็นรูปแบบ แบบนี้อ่าครับ 

{"aaData":[["aaaaa","2","2"]]}

โดย:  Eodza13579 IP: 171.6.143.xxx วันที่: 25-06-2016 เวลา: 15:49:29
 ความคิดเห็นที่ 3
รบกวนพี่ทำเป็นรูปแบบที่ผมขึ้นได้ไหมครับ ผมเอาไปใช้กับ datatable แบบ ajax 

ปล.ผมลองเอาไปใส่ดูแล้วขึ้นแบบนี้ Error: could not query dataSELECT count(requirement_tbl.req_id) FROM testcase_tbl อ่าครับ

โดย:  Eodza13579 IP: 171.6.143.xxx วันที่: 25-06-2016 เวลา: 15:46:11
 ความคิดเห็นที่ 2
แก้ครับ SQL ตารางที่สอง
SELECT requirement_tbl.req_id,requirement_tbl.req_name, COUNT(testcase_tbl.tc_id) AS num_testcase FROM requirement_tbl INNER JOIN testcase_tbl on(testcase_tbl.req_id = requirement_tbl.req_id) where requirement_tbl.p_id = '$id' 



โดย:  Suthee Khongnapha IP: 183.89.132.xxx วันที่: 25-06-2016 เวลา: 15:40:22
 ความคิดเห็นที่ 1

SQL ตารางแรกครับ

SELECT project_tbl.p_id,project_tbl.p_name,COUNT(requirement_tbl.req_id) AS num_requirement, COUNT(testcase_tbl.tc_id) AS num_testcase FROM project_tbl INNER JOIN requirement_tbl on(requirement_tbl.p_id = project_tbl.p_id) INNER JOIN testcase_tbl on(testcase_tbl.req_id = requirement_tbl.req_id) 

SQL ตารางที่สองครับ

SELECT requirement_tbl.req_id,requirement_tbl.req_name, COUNT(testcase_tbl.tc_id) AS num_testcase FROM requirement_tbl INNER JOIN testcase_tbl on(testcase_tbl.req_id = requirement_tbl.req_id) where requirement_tbl.req_id = '$id' 

ผมไม่รู้ว่าได้ตามที่ต้องการหรือป่าว ลองดูครับ


 



โดย:  Suthee Khongnapha IP: 183.89.132.xxx วันที่: 25-06-2016 เวลา: 15:35:30