【发布时间】:2016-08-31 07:01:50
【问题描述】:
我正在寻找一种更好的方法来遍历对象并显示其内容。
表单控制器:
公共函数 run(){
$tabteacher='';
if(!empty($_SESSION['apply']) && !empty($_SESSION['application'])){
$tabteachers = DB::getInstance()->select_teacher_id($_SESSION['login']);
}
require_once(VIEW_PATH.'formdeux.php');
}
Db.class 函数():
公共函数 select_teacher_id($login){
$query = '从教师、实习生、学生那里选择 * 教师.email_teacher = 实习生.email_responsible_internship 和学生.registry_number_student = 实习生.registry_student_internship 和实习生.registry_student_internship = '。 $this->_db->quote ( $login );
$result = $this->_db->query ( $query );
if ($result->rowcount () != 0) {
while ( $row = $result->fetch () ) {
$teacher[]= 新教师 ($row->email_teacher,$row->firstname_teacher,$row->lastname_teacher,$row->responsible_internship_teacher,NULL);
}
返回$老师;
}
}
表单视图:
<table>
<thead>
<tr>
<th width="20%" class="decoration">contact</th>
</tr>
</thead>
<tbody>
<?php foreach ($tabteachers as $teacher) { ?>
<tr>
<td>Lastname: <td>
<input type="text" name="lastnamepro" value="<?php echo $teacher->lastname_teacher() ?>" size="100px">
</tr>
<tr>
<td>Firstname: <td>
<input type="text" name="firstnamepro" value="<?php echo $teacher->firstname_teacher() ?>" size="100px">
</tr>
<tr>
<td>Email address: <td>
<input type="text" name="emailpro" value="<?php echo $teacher->email_teacher() ?>" size="100px">
</tr>
<tr>
<td>Service: <td>
<input type="text" name="servicepro" value="null" size="100px">
</tr>
<tr>
<td>mobile number: <td>
<input type="text" name="phonenumberpro" value="aucun numero" size="100px">
</tr>
<?php } ?>
</tbody>
</table><br>
数据库连接:
私有静态 $instance = null;
私人 $_db;
私有函数 __construct() {
尝试 {
$this->_db = new PDO ('mysql:host=localhost;dbname=ProjectWeb;charset=utf8', 'root', '' );
$this->_db->setAttribute (PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->_db->setAttribute ( PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ );
} 捕捉(PDOException $e){
die ('Erreur de connexion à la base de donnée :' . $e->getMessage () );
}
}
// 模式单例
公共静态函数 getInstance() {
if (is_null ( self::$instance )) {
self::$instance = new Db ();
}
返回自我::$实例;
}
提前感谢您的帮助!
【问题讨论】:
-
谁能帮帮我?
-
当前设置有什么问题?你面临任何错误吗?或者你想优化它?
-
@Vincent 我收到一条错误消息,提示 警告:为 foreach() 提供的参数无效它来自我实现的 foreach。
-
好的,您是否在 Db 类中使用 PDO 包装器?
-
查看下面的答案,如果您仍然看到 foreach 的参数无效错误,请在您的控制器中检查方法 select_teacher_id() 是否返回任何数据,使用 print_r() 或 var_dump() 进行调试