这是我第一次来这里,我希望得到你的好意见。我正在准备一个php系统,注册患者可以预约医生(也是已注册)。到目前为止,我已经做了我想要的,但现在我被卡住了。
在医生的个人资料页面上,我放了一个“查看约会”页面(显示了为该医生预订的约会)。我甚至在医生看到他/她有“新约会”(使用mysql查询中的计数)的通知。
现在,我的问题,如果该医生有多个预约怎么办?我想使用循环显示数据,这样他/她就可以在一个页面中同时看到所有数据。
我需要一些指导......
这是后端......
<?php
require_once '../inc/connect.php'; //my database connection, which also holds the functions file
if(!$doctor->is_loggedin())
{
$doctor->redirect('index.php');
}
// Getting the doctor id
$dct_id = $_SESSION['dct_session'];
//If need, further actions can be done using this query
$stmt = $DB_con->prepare("SELECT * FROM dct WHERE dct_id=:dct_id");
$stmt->execute(array(":dct_id"=>$dct_id));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
//this part is for viewing the appointments
$aptid=$_GET['apt_id'];
$stmt2=$DB_con->prepare("SELECT COUNT(dct_id) as aptid FROM apt WHERE dct_id=:aptid");
$stmt2->execute(array(":aptid"=>$aptid));
$aptRow=$stmt2->fetch(PDO::FETCH_ASSOC);
$newApt=$aptRow['aptid'];
if($newApt>0)
{ ?>
<div class="alert alert-info">You have <?php print ($newApt) ?> New Appointment! <br>
<button type="button" class="btn btn-info btn-sm" data-toggle="modal" data-target="#vwApt">View Appointment</button>
</div>
<?php }
else{ ?>
<div class="alert alert-warning">You have <?php print($newApt); ?> appointments!!</div>
<?php
}
?>
注意'模态',我希望约会细节出现在模态框中。 我是一个相当初学者,使用互联网和一些教程,得到了很多工作,但我真的需要指导。
数据库有“预约”表,其中包含“医生ID”和“患者ID”的外键,因此,如果我需要从多个表中获取数据,我可以这样做。约会表有患者姓名,患者详细信息,约会时间/日期和确认/拒绝字段。
我希望我能详细解释这个问题。
/ * EDITED * /
这是我最终用来获得我需要的代码。我创建了函数并在我的视图中使用。
<?php
$apts=$this->db->prepare($query);
$apts -> execute();
if($apts->rowCount() > 0)
{
while($row=$apts->fetch(PDO::FETCH_ASSOC))
{
?>
<div class="modal-body">
<table class="table table-bordered table-responsive">
<tbody>
<tr>
<td><?php echo $row['ptnt_fname']; ?></td>
<td><?php echo $row['ptnt_ds']; ?></td>
<td><?php echo $row['apt_day']; ?></td>
<td><?php echo $row['apt_time']; ?></td>
<td><button type="button" name="confirm" class="btn btn-info btn-sm"></button></td>
</tr>
</tbody>
</table>
</div>
<?php
}
?>
<?php
}
?>
这就是我用来调用此查询的部分
<?php
$query = "SELECT * FROM apt WHERE dct_id='$aptid'";
$doctor->viewApt($query);
?>
谢谢大家的回复和指导。非常感谢。
答案 0 :(得分:1)
使用
$stmt2->execute();
foreach(new TableRows(new RecursiveArrayIterator($stmt2->fetchAll())) as $k=>$v) {
echo $v;
}
将您的代码放入try块中。谷歌它来到这里 W3c select data向下滚动到PDO代码的底部
答案 1 :(得分:1)
我们将使用此表作为示例,我们将获取属于供应商1的项目。
$sth = $conn -> prepare("select * from items where vendor_id = 1");
$sth -> execute();
$results = $sth -> fetchAll();
会产生这个
+----+---------+---------------------+-----------+
| id | name | date | vendor_id |
+----+---------+---------------------+-----------+
| 1 | apples | 2015-08-19 11:27:27 | 1 |
| 2 | ornages | 2015-08-19 11:27:36 | 1 |
| 4 | bananas | 2015-08-19 11:27:41 | 1 |
+----+---------+---------------------+-----------+
获取所选供应商的商品数量
echo count($results); // 3
现在让我们遍历结果并显示项目名称。
$html = '<ul>';
foreach ($result as $key => $result) {
$html .= '<li>'.$result['name'] .'</li>' ;
}
$html .='</ul>';
输出应该是这样的
. apples
. ornages
. bananas
希望得到这个帮助。