Php 联接表多次显示同一条目

Php 联接表多次显示同一条目,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

我的数据库表结构:

表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
    ---------------------------------------------------------
    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
}