Önlemek, sayaç veya boş / null alan, telafi etmek için nasıl (MySQL) boş dönmeyerek

2 Cevap php

Ben sunucu tarafı komut dosyası bir asmak almak ve kişisel ilgi / geliştirme için PHP ve MySQL öğreniyorum. 'Merhaba dünya' ötesinde ilk 'programı,' olanları 'kendi blog yazma gibi görünüyor.

Bu henüz biraz beni aşıyor ve bu yüzden bir rehber-veritabanı türü ile başlamak istiyorum düşündüm. Şimdiye kadar çok iyi, ama (ve fakat her zaman var!) Ben kişinin adını bir mailto olarak biçimlendirilmiş olduğu şeklinde bir sunum biçimlendirmek çalışıyorum: link.

$query = mysql_query("
    SELECT CONCAT(fname,', ',sname) AS name, email.address AS email
    FROM contacts, emails 
    WHERE contacts.contactID=email.contactID");

while ($row = mysql_fetch_array($query)) {

 echo "<li><a href=\"mailto" . $row['email'] . "\"> . $row['name'] . "</a></li>";

}

Ben contacts.contactID eşit bir email.contactID bariz eksikliği başını rears hangi noktada, Db hiçbir e-posta adresine sahip bir kişi girmek için cesaret kadar iyidir.

Ben (uykusuzluk! @. @ Için yay) nasıl düşünemiyorum ... Ben bu ile başa çıkabilmek gerektiğini biliyoruz ama. Herhangi bir öneriniz mutluluk duyacağız.

2 Cevap

Sen sol (aka sol dış) katılmak istiyorum.

select concat(c.fname, ' ', c.sname) as name, e.address as email
from contacts c
left join emails e
on (c.contactID = e.contactID)

Outer rehber ve e-posta tabloları katılmak katılmak kullanın:

SELECT 
      CONCAT(fname,', ',sname) AS name, email.address AS email 
FROM 
    contacts c
    left outer join emails e on (c.contactID = e.contactID)

Bu size tüm kişileri geri dönecek ve eğer varsa e-posta adresin, diğer akıllıca adres null olacaktır.