2012-10-12 51 views
0

我構建了一棵家族樹。 表看起來是這樣的:PHP MYSQL家族樹「約」頁

ID ------姓名------母親------父親-------孩子

這是人detals頁面代碼:

$查詢=請求mysql_query(」 SELECT family.id,family.firstname, mother.firstname AS mother,father.firstname AS father,kids.firstname AS kids

從家庭

JOIN家庭爲母親ON mother.id = family.mother家人團聚AS 父親father.id = family.father家人團聚AS 孩子ON kids.id = family.kids

WHERE family.id =「。$ _ GET ['id']

$ row = mysql_fetch_array($ query,)or die(mysql_error());

  echo "First Name: ".$row['firstname']."<BR>"; 
      echo "Mother Name: ".$row['mother']."<BR>"; 
      echo "Father Name: ".$row['father']."<BR>"; 
      echo "Kids: ".$row['kids']."<BR>"; 
      echo "<BR>"; 

結果是:
名字:XXXXX
母親姓名:YYYYY
兒童:AAAAAAA

問題是,當其中一個字段是空的(如果一些人有沒有孩子),劇本停止。而我得到的只有:

名字:
母親姓名:
兒童:

任何解決方案?

回答

0

如果這些字段不需要有值,則應該使用LEFT JOIN而不是JOIN,但這可能會導致負載很重,具體取決於您的數據量。

+0

謝謝,任何解決方案,使加載速度更快? – user1740512

+0

那麼,你可以把它分成幾個SQL查詢,並且如果有選擇的話可以事先測試一下。當然,索引。這裏有一個優化左右連接的鏈接:http://dev.mysql.com/doc/refman/5.0/en/left-join-optimization.html – Vapire