所以我在寫這句話時真的很糟糕,所以請耐心等待。MySQL查詢在哪裏添加多條記錄到一條記錄
我正在建立一個網站,人們可以爲孩子購買禮物,每個孩子可以在他們的列表中有多個禮物。
我有兩個表children
和gift_list
。這些表是非常基本具有以下行:
children
- id
- name
- age
- status
gift_list
- id
- child_id
- description
- status
我試圖抓住屬於一個孩子,並返回它們作爲孩子的數組對象的所有禮物,但我發現了奇怪的結果。
這裏是我當前的SQL語句:
SELECT * FROM children JOIN gift_list WHERE gift_list.child_id = children.id
結果是:
Child A:
- id
- name
- age
- status
- gift A
Child A:
- id
- name
- age
- status
- gift B
我知道我需要通過gift_list
表圈,然後將它們添加到一個數組,但我MySQL是新手,我迷失在這個概念之中,無法想象如何正確搜索我想要完成的任務。想法最終結果將是:
Child A:
- id
- name
- age
- status
- gifts
- gift A
- description
- status
- gift B
- description
- status
任何幫助將不勝感激!作爲一個方面的說明,可能很重要,我使用PHP框架CodeIgniter。
編輯:
使用下面的建議,我終於得到了下面的代碼工作幾次失敗的嘗試後......有可能是如果是這樣,請線索我做這件事......更好/更清潔的方式在:)
$children = $this->db->get('children');
$gift_list = $this->db->get('gift_list');
foreach ($children->result() as $child)
{
$gifts = array();
foreach ($gift_list->result() as $gift)
{
if ($child->id == $gift->children_id)
{
array_push($gifts, $gift);
$child->gifts = $gifts;
}
}
}
echo "<pre>";
print_r($children->result());
echo "</pre>";
感謝您的所有建議!
當我從早餐回來時,我會嘗試這個嘗試!謝謝! – Seth 2011-05-29 14:30:09
我用完成我所尋找的代碼更新了我的問題。感謝您的建議。我遇到了while循環的問題,而WHERE IN語句最終返回了與SELECT * FROM gift_list相同的結果。 – Seth 2011-05-29 17:51:32