【发布时间】:2016-04-06 10:31:09
【问题描述】:
我是 PHP 新手,但我无法弄清楚我的代码。我正在使用 MySQL 和 PHP。
表:人 PK:个人ID 其他字段:lastName、firstName、hireDate、imgName
表:有效专业 PK:主要缩写 其他领域:majorDesc
(联结)表:personMajors personID,主要缩写
当我运行我的代码(使用NATURAL JOIN)时,它将显示图像、姓氏和名字以及雇用日期。太棒了!但我也需要它来显示他们的专业(我希望显示专业缩写)。它也不会显示在 person 表中但不在 personMajors 表中的人,这是一个问题,因为我们在 person 表中有工作人员(他们没有专业,因为他们不是学生)
这是我的代码:
<table align="center">
<?php
$connection = mysqli_connect(DBHOST, DBUSER, DBPASS, DBNAME);
if ( mysqli_connect_errno() ) {
die( mysqli_connect_error() );
}
$sql = "SELECT * FROM person NATURAL JOIN personMajors ORDER BY lastName";
if ($result = mysqli_query($connection, $sql)) {
// loop through the data
$columns=4;
$i = 0;
while($row = mysqli_fetch_assoc($result))
{
if($i % $columns ==0){
echo "<tr>";
}
echo "<td class='staffImage badgeText frameImage displayInLine'>" . "<img src='images/staff/".$row['imgName'].".jpg'>". "<br>".
"<strong>" . $row['firstName'] . "</strong>" ." ".
"<strong>" . $row['lastName'] . "</strong>" . "<br>" .
"Hire Date: ".$row['hireDate'] ."</td>";
"Major: " .$row['majorAbbrev'] ."</td>"; //Does not display
if($i % $columns == ($columns - 1)){
echo "</tr>";
}
$i++;
}
// release the memory used by the result set
mysqli_free_result($result);
}
// close the database connection
mysqli_close($connection);
?>
</table>
任何想法/解决方案将不胜感激!
【问题讨论】:
标签: php mysql join natural-join