我使用此功能来调用我的数据库
function get_prescriptionWith_4($ID){
$sql = "SELECT prescriptions FROM tblprescriptions WHERE `ID`='$ID'";
$query = $this->dbh->prepare($sql);
$query->execute();
$row = $query->fetchAll(PDO::FETCH_ASSOC));
return @$row;
}
我的数据库表看起来像这样..
ID | prescription
1 | Med (gen) 20 -- #20/1X per day --morning--for 30 days/,
1 | test (test) 23 -- #343/1X per day --morning and noon-- 120 days23/,
samp (rere) 44 -- #34/1X per day --morning-- 7 days44/,
1 | asd (asd) 22 -- #222/3X per day --morning noon and evening--30 days/,
qw (wq) 44 -- #222/3X per day --morning noon and evening--60 days/,
1233 (123) 21 -- #123213/1X per day --morning--- 60 days/,
我想要实现的是加载具有相同ID的所有处方,因为行处方中有多个数据我使用explode
来分隔数据,当我尝试使用Fetch(PDO::FETCH_ASSOC)
时只返回第一个处方我认为使用fetchAll可能更好地从我的数据库中获取所有数据..
$pres_array3=$patient->get_prescriptionWith_4($ID);
$new_array3=explode(',',$pres_array3,-1);
但当我使用echo $new_array3
检查时,如果fetchAll
上有任何内容正在返回
答案 0 :(得分:3)
1)您准备好的陈述错误/误用
awk -v s="CLEARED" '$3!=s{a[$4]=$0} $3==s{delete a[$4]} END{for (i in a) print a[i]}' file
2017-05-23T05:45:47 node-4 CRITICAL 104 alarm_text3
2)$sql = "SELECT prescriptions FROM tblprescriptions WHERE `ID` = :id";
$query = $this->dbh->prepare($sql);
$query->execute([':id' => $ID]);
返回数组,因此$query->fetchAll(PDO::FETCH_ASSOC)
不存在,它会抛出未定义索引$row['prescriptions']
的警告。正确的版本是
prescriptions
答案 1 :(得分:0)
所以,因为fetchAll(PDO:ASSOC)
没有给我任何东西......我使用这种方法代替..
$prescriptions = array();
while($row = $query->fetch(PDO::FETCH_ASSOC)){
$prescriptions[] = $row;
}
return $prescriptions;
然后
$pres_array3=$patient->get_prescriptionWith_4($patientID);
<?php
foreach ($pres_array3 as $key => $value) {
$prescription = $value['prescriptions'];
$new_array3=explode(',',$prescription,-1);
foreach($new_array3 as $value) {
?>
<input type="text" value="<?php echo $value?>" />
<?php } } ?>
我使用多个循环的原因是因为在第一个循环中我得到所有数组数据,然后将其爆炸以分离数据然后再次循环,因为爆炸返回array
而不是元素..