javascript - 来自多维数组的全日历事件数据

标签 javascript php arrays codeigniter fullcalendar

我有两个表:

预订表

+---------+-------+-----+--------+-----------+
| 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        |
+---------+-------+-----+--------+-----------+

菜单表

+---------+-------+-----------+-----------+
|     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 和 codeigniter。我尝试过连接表:

$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 : '');

等等

我的问题是:

如何从多维数组获取完整日历事件数据?

最佳答案

您可以使用 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";

关于javascript - 来自多维数组的全日历事件数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43289681/

相关文章:

javascript - 获取表中自定义属性的每个值

php - 以动态图像显示mysql数据

javascript - 通过 json 以 10ms 的间隔检查/显示变量值

php - 如何在 PHP 中选择要与 PDO 一起使用的 MySQL 数据库?

JavaScript 数组值未定义?

javascript - 检查与 Cordova 的互联网连接是否无法正常工作

javascript - Math.random() 高于预期?

javascript - 导航 View 上的 Sencha Touch 2 动态按钮

javascript - Array.push(Object) 插入对象数组

Javascript Reverse 方法不会反转我的数组