繁体   English   中英

如何获取PHP中外键引用的列名

[英]How do I get the column name of a foreign key reference in PHP

我有两个表:类别和测验

类别中,我有:category_id | category_name |

测验中,我有:quiz_id | 测验名称| quiz_category_id | quiz_duration

您会注意到,quiz_category_id是FOREIGN KEY参考。

这是我到目前为止的代码:

<table>
   <thread>
      <tr>
         <th>quiz name</th>
         <th>quiz category</th>
         <th>quiz duration</th>
     </tr>
   </thread>
     <tbody>
        <?php foreach (get_all_exam() as $r) { ?>
         <tr>
             <td><?php echo $r['quiz_name'] ?></td>
             <td><?php echo $r['quiz_category_id'] ?></td> // I am getting the id value not the name
             <td><?php echo $r['quiz_duration'] ?></td>
        </tr>
        <?php } ?>
     </tbody>
</table>

get_all_exam()是一个函数,在这里是:这是我执行sql查询的地方

function get_all_exam () {
    $data = array();

    $result = mysql_query("SELECT * FROM `quiz`");

    while ($row = mysql_fetch_assoc($result)) {
        $data [] = $row;
    }

    return $data;
} 

因此,此刻仅打印出来;例如

| 测验名称 | | 测验类别 | | 测验时间 |

|练习前| | 23 | | 5分钟|

而不是说23我想要它,以便它在相应的表上查找以获取名称

谢谢

SELECT quiz.quiz_name, category.catagory_name, quiz.quiz_duration 
FROM quiz LEFT JOIN category 
ON (quiz.quiz_category_id = category.category_id)

在select语句中,选择所需的内容,也可以说SELECT quiz.*, category.* ,但是要小心,如果您具有相同的字段名称,则可能希望使用AS进行检索。

LEFT JOIN意思是-即使右表中没有值,也总是从左表中显示; 因此,即使没有相应的category_id,它也会显示quiz_id。 RIGHT JOINRIGHT JOIN相反的作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM