Php 联接表多次显示同一条目
我的数据库表结构: 表1:-wp\u电子邮件\u时事通讯\u subPhp 联接表多次显示同一条目,php,mysql,wordpress,Php,Mysql,Wordpress,我的数据库表结构: 表1:-wp\u电子邮件\u时事通讯\u sub id| eemail_name_sub |eemail_email_sub |eemail_mobile_sub |patient_date ------------------------------------------------------------------------ 1 | user1 | user1@gmail.com | 9999999999 | 2014-5-14
id| eemail_name_sub |eemail_email_sub |eemail_mobile_sub |patient_date
------------------------------------------------------------------------
1 | user1 | user1@gmail.com | 9999999999 | 2014-5-14
---------------------------------------------------------
2 | user2 | user2@gmail.com | 754712456 |2014-8-11
表2:-wp\U在线咨询\U查询
id| online_consult_file | online_consult_filename | online_consult_datetime | consult_patientid
======================================================================================================
1 | filepath | filename1 | 2014-8-12 | 999999999
-------------------------------------------------
2 | filepath | filename2 | 2014-8-14 | 754712456
-------------------------------------------------
3 | filepath | filename3 | 2014-8-14 | 999999999
-------------------------------------------------
4 | filepath | filename4 | 2014-8-22 | 999999999
db中发生的情况是,当患者注册时,其详细信息将进入表1,并且患者的移动电话号码将用作识别每个患者的唯一id。因此,注册后,管理员可以从管理员部分上传患者的文件报告,文件和文件路径与患者手机号一起存储在表2中。因此,一名患者有多个文件报告。现在我需要在站点页面中将它们显示为一个表,为此我使用了以下格式:
SerialNo: | Name | Email | Mobile | Test Date | Reports
========================================================
1 | user1 | user1@gmail.com | 9999999999 | 2014-5-14 | filename1 , filename3, filename4
----------------------------------------------------------------------------------------
2 | user2 | user2@ymail.com | 754712456 | 2014-8-11 | filename2
我尝试了加入查询:
SELECT DISTINCT wp_eemail_newsletter_sub.eemail_name_sub,wp_eemail_newsletter_sub.eemail_email_sub,wp_eemail_newsletter_sub.eemail_mobile_sub,wp_eemail_newsletter_sub.patient_date,wp_online_consultation_querys.online_consult_file,wp_online_consultation_querys.online_consult_filename FROM wp_eemail_newsletter_sub LEFT JOIN wp_online_consultation_querys ON wp_eemail_newsletter_sub.eemail_mobile_sub=wp_online_consultation_querys.consult_patientid ORDER BY wp_online_consultation_querys.online_consult_datetime desc
这将为我提供以下表格:
user1 | user1@gmail.com | 999999999 | 2014-5-14 | filename1
user1 | user1@gmail.com | 999999999 | 2014-5-14 | filename3
user1 | user1@gmail.com | 999999999 | 2014-5-14 | filename4
user2 | user2@gmail.com | 754712456 | 2014-8-11 | filename1
有谁能告诉我如何以上述所需的表格格式在php中显示查询结果数据吗
编辑:-使用吉米的答案
我用于在站点中显示结果的PHP代码是:
$test = 'SELECT DISTINCT wp_eemail_newsletter_sub.eemail_name_sub, wp_eemail_newsletter_sub.eemail_email_sub, wp_eemail_newsletter_sub.eemail_mobile_sub, wp_eemail_newsletter_sub.patient_date,wp_online_consultation_querys.online_consult_file,GROUP_CONCAT( wp_online_consultation_querys.online_consult_filename) As s FROM wp_eemail_newsletter_sub LEFT JOIN wp_online_consultation_querys ON wp_eemail_newsletter_sub.eemail_mobile_sub= wp_online_consultation_querys.consult_patientid GROUP BY wp_eemail_newsletter_sub.eemail_mobile_sub ORDER BY wp_online_consultation_querys.online_consult_datetime desc';
$testdatea = $wpdb->get_results($test);
<table width="100%" class="widefatt" id="straymanage">
<thead>
<tr>
<th width="2%" align="left"></th>
<th width="3%" align="left">Sno</th>
<th width="5%" align="left">ID</th>
<th width="8%" align="left">Name</th>
<th width="8%" align="left">Email</th>
<th width="5%" align="left">Mobile</th>
<th width="10%" align="left">Test</th>
<th width="7%" align="left">Test Date</th>
<th width="7%" align="left">Latest Reports</th>
<th width="6%" align="left">Action</th>
</tr>
<thead>
<tbody>
<?php
if ( ! empty($testdatea) )
{
?>
<?php
$i = 1;
foreach ( $testdatea as $data ) {
?>
<tr class="<?php if ($i&1) { echo'alternate'; } else { echo ''; }?>">
<td align="left"><input class="case" name="chk_delete[]" id="chk_delete[]" type="checkbox" value="<?php echo(stripslashes($data->eemail_id_sub)).'_'.(stripslashes($data->eemail_email_sub)).'_'.(stripslashes($data->eemail_mobile_sub)); ?>" /> </td>
<td align="left"><?php if(($_GET['paginate']) != '') { echo ($limit * ($_GET['paginate']-1))+ $i; } else echo $i; ?></td>
<td align="left"><?php echo($data->eemail_patient_id); ?></td>
<td align="left"><?php echo(stripslashes($data->eemail_name_sub)); ?></td>
<td align="left"><?php echo(stripslashes($data->eemail_email_sub)); ?></td>
<td align="left"><?php echo(stripslashes($data->eemail_mobile_sub)); ?></td>
<td align="left"><?php echo(stripslashes($data->diagnosis_name)); ?></td>
<td align="left"><?php echo(date("d M ,Y", strtotime($data->patient_date))); ?></td>
<td align="left"><a href="javascript:void(0);" onclick="showdiv('<?php echo $data->online_consult_file;?>')"><?php echo(stripslashes($data->s));?></td>
<td align="left">
<a title="Delete" onClick="javascript:_subscriberdealdeletebylabs('<?php echo($data->eemail_patient_id); ?>')" href="javascript:void(0);">Delete</a> </td>
</tr>
<?php $i = $i+1; } ?>
</tbody>
<?php
}
else
{
?>
<tr><td colspan="5">No data found</td></tr>
<?php
} ?>
</table>
$test='选择不同的wp\u-eemail\u-newsletter\u-sub.eemail\u-sub.eemail\u-email\u-sub、wp\u-eemail\u-newsletter\u-sub.eemail\u-mobile\u-sub、wp\u-eemail\u-newsletter\u-sub.患者日期、wp\u-online\u-consultation\u-querys.在线咨询文件、小组咨询(wp\u-online\u-consultation\u-querys.online\u-consulture\u-CONCAT)从wp_eemail_通讯左起加入wp_在线咨询查询wp_eemail_通讯。eemail_mobile_sub=wp_在线咨询查询。由wp_eemail_通讯咨询患者组。由wp_在线咨询咨询查询。在线咨询日期描述’;
$testdatea=$wpdb->get_results($test);
斯诺
身份证件
名称
电子邮件
可移动的
试验
测试日期
最新报告
行动
您需要通过电子邮件和手机进行分组
和GROUP_CONCAT(在线咨询文件名)关于更好的编码实践,我建议大家遵循以下原则:-
1) 在SELECT中包含组目录(在线咨询文件)作为文件路径
2) 现在,您将在filepath中获得类似filepath、filepath、filepath的数据,并且在FILENAME中有filename1、filename3、filename4
3) 现在可以在php中分解这两个数组,并用逗号分隔,这样就可以得到两个数组$FILEPATH和$FILENAME
4) 现在您可以使用for循环:-
$noOfFiles = count($FILENAME);
for($i=0;$i<$noOfFiles;$i++) {
echo '<a href="'.$FILEPATH[$i].'">'.$FILENAME[$i].'</a>' // Here you would get all the links one by one
}
$noOfFiles=count($FILENAME);
对于($i=0;$i选择不同的wp\u-eemail\u-newsletter\u-sub.eemail\u-sub、wp\u-eemail\u-email\u-sub、wp\u-eemail\u-newsletter\u-sub.eemail\u-mobile\u-sub、wp\u-eemail\u-newsletter\u-sub.患者日期、wp\u-online\u-consultry\u-consulty.online\u-consulty\u-consulture\u文件、组(wp\u-online\u-consultsulty\u-CONCAT)从wp\u eemail\u newsletter\u sub左加入wp\u online\u consultation\u sub关于wp\u eemail\u newsletter\u sub.eemail\u mobile\u sub=wp\u online\u consultation\u querys.consulty\u patientid GROUP BY wp\u eemail\u newsletter\u sub.eemail\u mobile\u sub订购wp\u online\u online\u consulture\u datetime感谢您的回复。但这无法检索文件路径。因此在,我可以将文件名设置为站点页面中的链接。尝试以下方法:-GROUP_CONCAT(CONCAT(“”))非常感谢Jimmy…:)
$noOfFiles = count($FILENAME);
for($i=0;$i<$noOfFiles;$i++) {
echo '<a href="'.$FILEPATH[$i].'">'.$FILENAME[$i].'</a>' // Here you would get all the links one by one
}