私はPHPが初めてで、自分のコードを理解できません。MySQLとPHPを使用しています。
テーブル: person PK: personID その他のフィールド: lastName、firstName、hireDate、imgName
テーブル: validMajors PK: majorAbbrev その他のフィールド: majorDesc
(ジャンクション) テーブル: personMajors personID、majorAbbrev
コードを ( を使用してNATURAL JOIN
) 実行すると、画像、姓と名、雇用日が表示されます。これは素晴らしいです!しかし、専攻も表示する必要があります (majorAbbrev を表示したいと思います)。また、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>
どんなアイデア/解決策も大歓迎です!