2017-04-08 24 views
0

數據我有兩個表:Fullcalendar事件從多維數組

booking_table

+---------+-------+-----+--------+-----------+ 
| bookID | start | end | title | menuId | 
+---------+-------+-----+--------+-----------+ 
|1  | xx | xx | 1  | 11  | 
|2  | xx | xx | 2  | 12  | 
|3  | xx | xx | 1  | 13  | 
|4  | xx | xx | 3  | 14  | 
+---------+-------+-----+--------+-----------+ 

menu_table

+---------+-------+-----------+-----------+ 
|  ID | name | img  | tMenuId | 
+---------+-------+-----------+-----------+ 
| 1  | xx | 1.jpg | 11  | 
| 2  | xx | 2.jpg | 11  | 
| 3  | xx | 3.jpg | 12  | 
| 4  | xx | 4.jpg | 12  | 
+---------+-------+-----------+-----------+ 

我使用fullcalendar.js和笨。我已經嘗試了加入表格:

$sql = "SELECT * FROM booking_table JOIN menu_table ON booking_table.menuId = menu_table.tMenuId WHERE booking.start BETWEEN ? AND ? ORDER BY booking.start ASC"; 

return $this->db->query($sql, array($_GET['start'], $_GET['end']))->result(); 

但按預期不能正常工作。 我得到:

+---------+-------+-----+--------+-----------+---------+-------+-----------+-----------+ 
| bookID | start | end | title | menuId |  ID | name | img  | tMenuId | 
+---------+-------+-----+--------+-----------+---------+-------+-----------+-----------+ 
|1  | xx | xx | 1  | 11  | 1  | xx | 1.jpg | 11  | 
+---------+-------+-----+--------+-----------+---------+-------+-----------+-----------+ 
|1  | xx | xx | 1  | 11  | 2  | xx | 2.jpg | 11  | 
+---------+-------+-----+--------+-----------+---------+-------+-----------+-----------+ 

我從booking_table獲得第1行兩次。 我需要的是:

+---------+-------+-----+--------+-----------+---------+-------+-----------+-----------+ 
| bookID | start | end | title | menuId |  ID | name | img  | tMenuId | 
+---------+-------+-----+--------+-----------+---------+-------+-----------+-----------+ 
|1  | xx | xx | 1  | 11  | 1  | xx | 1.jpg | 11  | 
|   |  |  |  |   | 2  | xx | 2.jpg | 11  | 
+---------+-------+-----+--------+-----------+---------+-------+-----------+-----------+ 
|2  | xx | xx | 2  | 12  | 3  | xx | 3.jpg | 12  | 
|   |  |  |  |   | 4  | xx | 4.jpg | 12  | 
+---------+-------+-----+--------+-----------+---------+-------+-----------+-----------+ 

我填充的div模態是這樣的:

$('#time').val(data.event ? data.event.start : ''); 

我的問題是:

我怎樣才能得到fullcalendar來自多維數組的事件數據?

+0

什麼不按預期工作?你能提供一個你想要它看起來像樣的例子嗎(從你展示的數據中)? –

+0

我已更新帖子,我希望現在更清楚。基本上,我得到多維數組,對於'booking_table'表中的一個項目,我從'menu_table'獲取多個項目。 – Pecooou

回答

1

您可以使用group_concat將多行的值合併到一個字段中。另外,如果您在表上使用別名,它可以使查詢更具可讀性。

$sql = "SELECT 
    b.`bookID`, 
    b.`start`, 
    b.`end`, 
    b.`title`, 
    b.`menuId`, 
    m.`ID`, 
    GROUP_CONCAT(m.`name`) as `names`, 
    GROUP_CONCAT(m.`img`) as `images`, 
    m.`tMeniId` 
FROM booking_table b 
JOIN menu_table m 
    ON b.menuId = b.tMenuId 
GROUP BY a.bookID, b.menuId 
WHERE b.start BETWEEN ? AND ? 
ORDER BY b.start ASC"; 
+0

GROUP_CONCAT非常有用,雖然在轉換到適當的數組時需要一些工作,但到目前爲止我沒有使用它。 Thanx夥伴 – Pecooou