php – 使用主表引用子表
发布时间:2020-12-13 16:59:11 所属栏目:PHP教程 来源:网络整理
导读:在我的数据库中,我有一个作业表,你可以说它是我数据库中的主表.我有一个名为category的列,此列指向一个名为category的表,该表包含不同的类别. 拿起外键的概念,我把列类别变成了一个外键,它查看了类别表. 在我的类别表中,我确保它指向ID. 当我运行我的网页时,
在我的数据库中,我有一个作业表,你可以说它是我数据库中的主表.我有一个名为category的列,此列指向一个名为category的表,该表包含不同的类别.
拿起外键的概念,我把列类别变成了一个外键,它查看了类别表. 在我的类别表中,我确保它指向ID. 当我运行我的网页时,它打印出类别列中的值1,理论上它应该不打印“Driving”? function getJobDetails($job,$cat){ //this connects to the database include "connectToDatabse.php"; //show me the results from job,where category is like cat vice versa $results = $pdo->query("SELECT * FROM job WHERE category LIKE '$cat%' OR title LIKE '$job'"); $str = "<table>"; //prints out table $str .= "<td>" ."Title" . "</td>"; //first row $str .= "<td>" ."Reference" . "</td>"; //N row... $str .= "<td>" ."Salary(£)" . "</td>"; $str .= "<td>" ."Description" . "</td>"; $str .= "<td>" ."Category" . "</td>"; foreach ($results as $row) { $ref = $row['reference']; $link = "<form method='get' action='apply.php' name='edit'> <input type='hidden' name='referenceNumber' value='$ref'> <input type='submit' value='$ref'> </form>"; $str .= "<tr>"; $str .= "<td>" . $row['title'] . "</td>"; $str .= "<td>" . $row['reference'] . "</td>"; $str .= "<td>" . $row['salary'] . "</td>"; $str .= "<td>" . $row['description'] . "</td>"; $str .= "<td>" . $row['category'] . "</td>"; $str .= "<td> " .$link . "</td>"; $str .= "</tr>"; } $str .= "</table>"; echo $str; } 上面的代码是一个返回作业表中数据的函数. 编辑:引用问题,因为categories列指向类别表,它是否应该将数据引回到作业表? 解决方法
不,不应该.你错过了解外键.它们不会更改您获得的数据,它们只告诉数据库系统’嘿,这引用了其他内容,如果其他条目被更新或删除,请在此处使用此条目执行X(更新,删除,…).您仍然需要联接才能获得预期结果:
SELECT ...,category.title FROM job LEFT JOIN category ON category.id = job.category (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |