我在编写代码时遇到了困难,需要你的帮助。我正在创建一个应用程序,其中患者的数据由医生存储在DB中。我知道如何使用PHP从MySQL DB中检索数据到HTML表。但是,我不知道如何根据检索到的数据动态填充HTML标头和数据。更具体地说,我想只显示医生开的处方数据。
如果医生开了处方药,那么只应填充药头。如果医生只开了喷雾,那么只应该喷洒喷头等等。
答案 0 :(得分:0)
有一点粗略的时间可视化你的意图,但是从我的头脑中,你需要在构建标题时在循环中添加一组if
语句。
if (row[1] == "spray") {
echo "<tr><th>Spray</th></tr>";
}
同样,这只是一个粗略的例子,row[1]
是包含药物或喷雾的列。这样,如果医生同时规定两者(即在新标签上添加药物行,只是一个想法),你可以做更多的事情,或者你可以完全放弃一个。
如果有其他想法,我会编辑我的评论。
修改强>
所以我用药柱和喷雾柱建立了一个快速表'患者'。
select if (spray is null, medicine, spray) as type from patients where medicine is not null
这将显示除null
以外的所有药品行。您可以将type
列重命名为其他内容,并在构建HTML标头时在PHP中使用它。
我已在此处构建了表格http://phpfiddle.org/,转到“资源”标签,然后点击“辅助工具=&gt;”按钮并更改为MySQL。单击“显示表”按钮并搜索“患者”表,单击它并复制粘贴我的查询以查看结果。
修改强>
忘记提及您可以在as type
之后添加其他列,以替代select *
编辑3(lol):
您还可以查看其他答案的stackoverflow,并通过更改和链接每列(SQL: Selecting columns based on column value from another table)的if
语句来构建动态列名称,从中获取一小部分内容。
快速提示,我也学到了很多方法,你可以用mysql做更多的事情,而不是让所有繁重的工作变成PHP,从MySQL获取打印就绪结果集更快,更干净,更安全,而不是用PHP格式化它们在你做了Select *
之后,尤其是当你拥有包含大量数据的表时,它会更好地扩展。
希望这有帮助。
答案 1 :(得分:0)
我不知道你的标题是什么意思,但是为了根据值填充DOM,我根据所回复的行制作控制语句
示例:
<?php
if(mysqli_num_rows($the_query_variable) >= 1){
//the while loop for grabbing the data
?>
//these are the datas
<div>the results</div>
<?php
} else {
?>
//you don't even need to do this else statement if you don't want to say no results...
<div> no results found</div>
<?php
}
?>