2016-12-01 93 views
1

我得到了2个表,每个cursus都有一个与外键连接的cursussoort。 我试图从cursussoort表中获取数据以显示在while循环中。 cursussoort_ID显示的是显而易见的id,但是如何从cursussoort表中获得'naam'?从外键获取其他表中的数据

tables

<?php 
$result = mysqli_query($con, "SELECT * FROM cursus WHERE cursussoort_ID = 1 ORDER BY begindatum ASC"); 
while ($cursus = mysqli_fetch_array($result)) { 
?> 
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1"> 
    <div class="post-preview"> 
     <h2 class="post-title"> 
     <?php echo $cursus['cursussoort_ID'];?> 
     <?php echo $cursus['begindatum'] . "<br />";?> 

     </h2> 
     <h3 class="post-subtitle"> 
     <?php echo $cursus['beschrijving'] . "<br />";?> 
     </h3> 
    </div> 
</div> 
<?php } ?> 
+1

你应该看一看为“SQL连接”,将帮助您解决问题。 http://www.w3schools.com/sql/sql_join.asp如果你愿意,我可以为你写SQL语句,如果你没有得到它。 – Twinfriends

回答

1

你在你的SQL语句,从2个表连接的数据应该JOIN

SELECT c.*, cs.* FROM cursus c 
INNER JOIN cs.cursussoort ON c.cursussoort_ID = cs.ID 
WHERE c.cursussoort_ID = 1 
ORDER BY begindatum ASC 

然后你就可以在HTML显示出来:

<?php 
$result = mysqli_query($con, "SELECT c.*, cs.* FROM cursus c INNER JOIN cs.cursussoort ON c.cursussoort_ID = cs.ID WHERE c.cursussoort_ID = 1 ORDER BY begindatum ASC"); 
while ($cursus = mysqli_fetch_array($result)) { 
?> 
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1"> 
    <div class="post-preview"> 
     <h2 class="post-title"> 
     <?php echo $cursus['cursussoort_ID']; ?> 
     <?php echo $cursus['naam']; ?><br /> 
     <?php echo $cursus['begindatum']; ?><br /> 
     </h2> 
     <h3 class="post-subtitle"> 
     <?php echo $cursus['beschrijving']; ?><br /> 
     </h3> 
    </div> 
</div> 
<?php } ?> 
1

执行JOIN之间的表像

SELECT c.* 
FROM cursus c 
JOIN cursussoort cr ON c.ID = cr.cursussoort_ID 
WHERE c.cursussoort_ID = 1 
ORDER BY c.begindatum 
1

尝试左外连接

主要的查询是

`SELECT * FROM cursus c LEFT OUTER JOIN cursussoort cr ON (c.cursussoort_ID = cr.id) WHERE cursussoort_ID = 1 ORDER BY c.begindatum ASC`