php - Foreach循环显示具有相同id的所有记录

标签 php mysql sql

在我的表courses中,我有几个共享相同academy_id的条目。我正在使用 foreach 循环来检索结果集中的值。 for 循环仅显示一个结果,而不显示共享相同 academy_id 的所有其他结果。如何显示共享相同 academy_id 的所有行?

表值

+----+------------+----------------------+---------------+------------+
| id | academy_id |     course_name      |  start_date   |  end_date  |
+----+------------+----------------------+---------------+------------+
| 1  |        123 | Biology - Basic      | 2013-11-30    | 2013-12-25 |
| 2  |        123 | Biology - Nutrition  | 2013-11-30    | 2013-12-25 |
| 3  |        345 | Chemistry            | 2013-11-30    | 2013-12-25 |
| 4  |        678 | Calculus             | 2013-11-30    | 2013-12-25 |
+----+------------+----------------------+---------------+------------+

PHP

$academy_id = '123';

$db_select  = $db_con->prepare("
SELECT c.course_name,
       c.course_start_date,
       c.course_end_date
FROM courses c
WHERE c.academy_id = 123
");
if (!$db_select) return false;
    if (!$db_select->execute(array(':academy_id' => $academy_id))) return false;
    $results = $db_select->fetchAll(\PDO::FETCH_ASSOC);
    if (empty($results)) return false;
    foreach ($results as $value){
    $final_result = "<b>Course Name: </b>".$value['course_name']."</br><b>Start Date: </b>".$value['start_date']."</br><b>End Date: </b>".$value['end_date']."</br>";
    }
print_r($_POST);
}

当前结果

+----+------------+-------------------+---------------+------------+
| id | academy_id |   course_name     |  start_date   |  end_date  |
+----+------------+-------------------+---------------+------------+
| 1  |        123 | Biology - Basic   | 2013-11-30    | 2013-12-25 |
+----+------------+-------------------+---------------+------------+

希望显示所有 academy_id = 123 的结果

+----+------------+----------------------+---------------+------------+
| id | academy_id |     course_name      |  start_date   |  end_date  |
+----+------------+----------------------+---------------+------------+
| 1  |        123 | Biology - Basic      | 2013-11-30    | 2013-12-25 |
| 2  |        123 | Biology - Nutrition  | 2013-11-30    | 2013-12-25 |
+----+------------+----------------------+---------------+------------+

最佳答案

改变

$academy_id = '123';

....

foreach ($results as $value){
    $final_result = "<b>Course Name: </b>".$value['course_name']."</br><b>Start Date: </b>".$value['start_date']."</br><b>End Date: </b>".$value['end_date']."</br>";
}

对于

$academy_id = 123;

.....

$final_result = '';
foreach ($results as $value){
    $final_result .= "<b>Course Name: </b>".$value['course_name']."</br><b>Start Date: </b>".$value['start_date']."</br><b>End Date: </b>".$value['end_date']."</br>";
}

echo $final_result;

关于php - Foreach循环显示具有相同id的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20127968/

相关文章:

mysql - 尝试从 MySQL 数据库创建 Entity Framework 模型失败并出现意外异常

mysql - 多个表的内部联接

php - 不分句。

java - 按列搜索结果集

php - 显示可能通过 HTTP POST (PHP + MySQL) 更改的项目列表的最佳做法是什么

Mysql创建触发器时出错

mysql - 一直提示错误105

mysql - 按相似字符串分组

php - 如何在wordpress的三个不同列中查看三个不同类别的帖子?

php - 为什么这个 PNG 图像在 Chrome 和 Firefox 上呈现不同?