【问题标题】:how to display duplicate email address [duplicate]如何显示重复的电子邮件地址[重复]
【发布时间】:2016-03-05 12:13:04
【问题描述】:
$sql ="SELECT u.Contact_Email FROM email1 AS u UNION ALL SELECT e.Contact_Email FROM email2 AS e"; $result = mysql_query($sql);
 $yes = 'yes';
 $no = 'no';
 echo "<table><tr><th>Email</th><th>email 1 opened</th><th>email 1 clicked</th><th>email2 opened</th><th>email2 clicked</th><th>email3 opened</th><th>email4 opened</th><th>email 4 clicked</th><th>email 5 opened</th><th>email 5 clicked</th><th>email 6 opened</th><th>email 6 clicked</th></tr><tbody>";
 while($row = mysql_fetch_array($result)) {
            $d_name = $row['Contact_Email'];
    ?> 
          <tr>
            <td><?php echo $d_name; ?></td>
            <?php if($row['Contact_Email']  == $row['Contact_Email']){
            echo "<td>yes</td>";
            } else if ($row['Contact_Email']  == 0){
            echo "<td>no</td>";
            }    ?>
            <td><?php echo $yes; ?></td>
          </tr>
          <?php } ?>
           </tbody>
    </table>

这是我的 php 脚本。我有一个 11 表 email1、email2、email3、... email11
加入表格并将重复的电子邮件显示为“是”,否则为“否” 我想要这个输出我在做什么??
Output like this

【问题讨论】:

标签: php mysql join duplicates


【解决方案1】:

你可以试试这个:

select count(email) as email_count, email from ( 
select email_1 as email  from email 
union all select email_2 as email  from email_2 
union all select email_3 as email  from email_3
union all select email_4 as email  from email_4
.......
) as emails_table group by emails_table.email

然后你可以通过php循环:

while($row = mysql_fetch_array($result)) {
if($row['email_count']>1 ) {
echo 'yes';
} else {
echo 'no';
}
}

【讨论】:

  • 请大家帮帮我
【解决方案2】:

这是 4 个表的示例,如果需要,您可以将其扩展到 11 个。 抱歉,我没有调试这段代码,我猜主要的障碍是 mysql 查询从数据库中获取正确的值。

而且你绝对应该停止使用mysql* 函数!

$sql ="SELECT t.Contact_Email,
  e1.Contact_Email email1,
  e2.Contact_Email email2,
  e3.Contact_Email email3,
  e4.Contact_Email email4
FROM (
SELECT e.Contact_Email FROM email1 e
UNION ALL 
SELECT e.Contact_Email FROM email2 e
UNION ALL 
SELECT e.Contact_Email FROM email3 e
UNION ALL 
SELECT e.Contact_Email FROM email4 e
) t
LEFT JOIN email1 e1
ON t.Contact_Email = e1.Contact_Email
LEFT JOIN email2 e2
ON t.Contact_Email = e2.Contact_Email
LEFT JOIN email3 e3
ON t.Contact_Email = e3.Contact_Email
LEFT JOIN email4 e4
ON t.Contact_Email = e4.Contact_Email";

echo '<table><thead><tr><th>Email</th>';
for ($i=1;$i<5; $i++){
    echo "<th>email $i</th>";
}
echo '</tr></thead><tbody>';

$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
    echo '<tr><td>'.$row['Contact_Email'].'</td>';
    for ($i=1;$i<5; $i++){
        echo '<td>'.(empty($row['email'.$i])?'no':'yes').'</td>';
    }
    echo '</tr>';
}
echo '</tbody></table>';

【讨论】:

  • 感谢它对我有用...
  • 而不是 tr td ,我如何使用逗号分隔符?
猜你喜欢
  • 2014-11-29
  • 2011-12-11
  • 1970-01-01
  • 2010-11-04
  • 1970-01-01
  • 2019-12-17
  • 1970-01-01
  • 2021-08-29
  • 2015-11-19
相关资源
最近更新 更多