【发布时间】:2015-05-13 14:27:47
【问题描述】:
我在 PHP 中使用自定义 MVC
我有两张桌子。
控制和教授
professors 表当然包含一个 id --> id_professor
controles 表包含一个名为 --> id_professors 的字段,我以这种方式在其中存储 profs id 列表 ==> 1;2;5;9
在我的数据表中,我从 controles 表中检索控件列表
对于模型,我正在使用这个类
public function fetchControlesListe(){
stmt = $this->db->prepare("SELECT * FROM controles ");
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$stmt->execute();
return $stmt->fetchAll();
}
控制器
liste_controles.php
class Liste_Controles extends Controller {
function __construct(){
parent::__construct();
}
$this->view->fetchCtrlListe= $this->model->fetchControlesListe();
$this->view->render('liste_controles/index');
}
查看
<table>
<thead>
<tr>
<th>N°</th>
<th>Module</th>
<th>Salle</th>
<th>Surveillants</th>
</tr>
</thead>
<tbody>
<?php foreach($this->fetchCtrlListe AS $key=>$value): ?>
<tr>
<td><?php echo $controle['id_controle']; ?></td>
<td><?php echo $controle['intitule_module']; ?></td> <
<td><?php echo $controle['intitule_salle'];?></td>
<td>
<?php foreach($this->prof as $profs): ?>
这里,我想从 professors 那里检索教授列表 表和 professors 表中的字段 id_profs 存储一个 数组,如我之前所说,包含一个 id 列表(例如:1;2;3;4;5) 我想遍历该数组并检索 如果 id_professor 存在于该数组中,则来自 professors 表的教授 .我知道我必须创建另一个 METHOD 但问题是我不知道如何在方法中传递参数并从控制器调用它以将其传递给视图。参数是 $controle['id_professor']
<?php endforeach; ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
结果会是这样的:
编辑:
我知道将大量 id 存储为数组不是一个好主意,但是 我的问题我只想知道如何在里面做一个 foreach 循环 另一个 foreach 循环使用另一种方法,其参数将 从第一个循环传递
【问题讨论】:
-
一个好的第一步是规范您的数据库,以便检索数据更加简单和高效。拥有这种东西 (1;2;5;9) 并不是很酷,并且不允许您正确管理数据。更多信息,你可以看看这个studytonight.com/dbms/database-normalization.php
-
我知道是对的,但这次我必须这样做,因为我有义务
-
忘记 1;2;5;6;阵列的东西。我只想知道如何使用另一种方法在另一个 foreach 循环中执行一个 foreach 循环,该方法的参数将从第一个循环传递
-
IMO,您应该在
fetchControlesListe中展开 id 列表并在那里获取教授行。不在您的模板中。您的模板应该只循环 100% 准备好显示的数据。不要从模板中解析和获取数据,那么你的职责分离很差,使用“MVC”模式毫无意义。
标签: php mysql model-view-controller