私はPHPが初めてで、私のコードを理解できません。私はMySQLとPHPを使用しています。PHP、MySQL - JOINs
表:人 PK:lastNameの、FirstNameとHIREDATE、imgName
表:validMajors PK:majorAbbrev その他のフィールド:majorDesc
(ジャンクション)表:personMajors 他のフィールドをPERSONID personID、majorAbbrev
コードを実行すると(NATURAL JOIN
)は、画像を表示し、最後に&ファーストネームと雇用日を表示します。どちらが素晴らしいです!しかし、私は彼らの専攻も表示する必要があります(私はmajorAbbrevを表示したいです)。また、人のテーブルにいるが、personMajorsのテーブルにない人は表示されません。人のテーブルにスタッフがいるため(学生ではないために専攻がない)、
ここに私のコードです:
<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>
すべてのアイデア/ソリューションは非常に高く評価されます!
2番目の提案でmajorAbbrevが表示されました!おかげさまで私が今必要としていた進歩はどれですか? –