Vì cộng đồng đã bỏ phiếu để đóng nên cách hiển thị địa chỉ email trùng lặp
Đây là một ví dụ cho 4 bảng, bạn có thể mở rộng nó cho đến 11 nếu bạn cần. Xin lỗi, nhưng tôi đã không gỡ lỗi mã này, tôi đoán trở ngại chính là truy vấn mysql để nhận các giá trị chính xác từ cơ sở dữ liệu.
Và bạn chắc chắn nên ngừng sử dụng các hàm 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>';
CẬP NHẬT Sử dụng cùng một truy vấn nhưng thay đổi phần đầu ra thành:
echo '<table><thead><tr><th>Email</th>';
for ($i=1;$i<5; $i++){
echo "<th>email $i</th>";
}
echo "<th>Total (yes)</th>";
echo "<th>Total (no)</th>";
echo '</tr></thead><tbody>';
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
$yesCount = 0;
$noCount = 0;
echo '<tr><td>'.$row['Contact_Email'].'</td>';
for ($i=1;$i<5; $i++){
echo '<td>'.(empty($row['email'.$i])?'no':'yes').'</td>';
if (empty($row['email'.$i])) {
$noCount++;
} else {
$yesCount++;
}
}
echo '<th>'.$yesCount.'</th>';
echo '<th>'.$noCount.'</th>';
echo '</tr>';
}
echo '</tbody></table>';