こんにちは、mySQL クエリで問題が発生しています。私のテーブルと現在のクエリを親切に見てください。
表「インストラクター」
---------------------------------------------
id |firstname | lastname | subject_id|
---------------------------------------------
1 Juan Dela Cruz 1
2 Antonio Brigada 2
--------------------------------------------
表「件名」
---------------
id | name |
---------------
1 English
2 Math
3 Science
--------------
私の現在のクエリ
public function instructor(){
global $database;
$sql = "SELECT instructors.firstname as firstname, instructors.lastname as lastname ";
$sql .= "FROM subjects ";
$sql .= "JOIN instructors ";
$sql .= "WHERE subjects.id = instructors.subject_id";
$result = $database->query($sql);
while($instructor = $database->fetch_array($result)){
if (isset($instructor['firstname']) && isset($instructor['lastname'])){
return $instructor['lastname'] . " " . $instructor['firstname'];
} else {
return "N/A";
}
}
}
結果:
English Juan Dela Cruz
Math Juan Dela Cruz
Science Juan Dela Cruz
編集
現在のSQL:
public function instructor(){
global $database;
$sql = "SELECT a.name, ";
$sql .= "COALESCE(CONCAT(b.firstname, ' ',b.lastname), 'N/A') as ins_name ";
$sql .= "FROM subjects a ";
$sql .= "LEFT JOIN instructors b ";
$sql .= "ON a.id = b.subject_id";
$result = $database->query($sql);
while($instructor = $database->fetch_array($result)){
return $instructor['ins_name'];
}
}
結果
English Juan Dela Cruz
Math Juan Dela Cruz
Science Juan Dela Cruz
あるべき姿:
English Juan Dela Cruz
Math Antonio Brigada
Science N/A
インストラクター()関数の呼び出し
<?php foreach($subjects as $subject): ;?>
<tr class="subject_list">
<td><?php echo $subject->name; ?></td> // This will show all subjects
<td><?php echo $subject->instructor(); ?></td> // This will show instructor foreach subjects
</tr>
<?php endforeach; ?>
上記の結果を見るために誰かが私を助けてくれることを願っています。