获取打印表中的外键值

时间:2014-03-15 15:40:50

标签: php mysql sql

当我从查询中得到结果并将其打印在表格中时,我想从另一个表格中打印出我的外键。

我的连接和查询代码:

        $host="localhost";
        $username="****";
        $password="****";
        mysql_connect("$host", "$username", "$password")or die("cannot connect");
        mysql_select_db('****')or DIE(mysql_error());
        $tbl_name="ticket";

        $sql = "SELECT `id`, `subject`, `assigned`, `status`, `created`, `priority_id` FROM $tbl_name";
        $result = mysql_query($sql);

这是用于在表格中打印结果的代码

        $row = mysql_fetch_assoc($result);  
        print ('<table id="myTable" class="tablesorter" cellpadding="0" cellspacing="0">');
        print ("<thead>");
        print ("<th>ID</th>");
        print ("<th>SUBJECT</th>");
        print ("<th>ASSIGNED</th>");
        print ("<th>STATUS</th>");
        print ("<th>CREATED</th>");
        print ("<th>PRIORITY</th>");
        print ("</tr> </thead>");
        print ("<tbody>");
        while ($row) {
            $id = $row['id'];

            print ('<tr>'); 
            foreach ($row as $col => $value) {
                print ("<td data-href=tickets/edit.php?id=$id>$value</td>");
            }
            print ("</tr>");

            //Fetch next row    
            $row = mysql_fetch_assoc($result);
        }
        print ("</tbody>");
        print ("</table>"); 

        mysql_free_result($result);

因此,票证表中的优先级ID是“优先级”表的外键,其中我有三个不同的行

id     name
 1     low
 2     medium
 3     high

对于故障单表中的已分配ID也是如此。这是分配故障单的人员的名称。它存储在“成员”表

id     name
 1     John
 2     Ben
 3     Brad

我该怎么做?我尝试了内连接,但没有运气。

(我也知道我应该使用mysqli,但是它有一些问题。这个有效,所以我可能会在以后更改它。)

1 个答案:

答案 0 :(得分:1)

请尝试以下操作:

$sql = "SELECT t.id, t.subject, m.name AS memberName, t.status, t.created, p.name AS priorityName 
        FROM $tbl_name AS t
        LEFT JOIN priority AS p ON t.priority_id = p.id
        LEFT JOIN members AS m ON t.assigned = m.id";

编辑:我在第二次LEFT JOIN中忘记了ON。我刚补充说。