gpt4 book ai didi

PHP/MySQL : synchronize two fields in the same table

转载 作者:行者123 更新时间:2023-11-29 12:48:25 25 4
gpt4 key购买 nike

我需要同步两个不同的预订日历,因为两个日历都预订相同的房间(或相同的事件)。

因此,如果客户在calendar_01中预订了一天(和时间),则该值(预订的日期和时间)将在calendars_02中自动更新(反之亦然)。

按照上次(最近预订)的顺序更新(并重写新值),而不是连续循环,这一点很重要。

MySql 数据库

我为此使用了一个插件,在“日历”数据库中有一个名为“天”的表,在这个表中我可以看到:

+--------------+-------------+------------+------+----------------------------------------------------------+
| unique_key | calendar_id | day | year | data |
+--------------+-------------+------------+------+----------------------------------------------------------+
| 1_2014-08-20 | 1 | 2014-08-20 | 2014 | available h10-12; booked h12-14; in pending h14-16; |
| 2_2014-08-20 | 2 | 2014-08-20 | 2014 | available h 10 - 12; available h12-14; available h14-16; |
| 1_2014-08-21 | 1 | 2014-08-21 | 2014 | available h10-12; available-14; available h14-16; |
| 2_2014-08-21 | 2 | 2014-08-21 | 2014 | booked h10-12; booked h12-14; in pending h14-16; |
+--------------+-------------+------------+------+----------------------------------------------------------+

简化:“数据”列包含记录每次重新预订的值(TEXT 类型),因此:

+--------------+-------------+------------+------+--------------+
| unique_key | calendar_id | day | year | data |
+--------------+-------------+------------+------+--------------+
| 1_2014-08-20 | 1 | 2014-08-20 | 2014 | text value A |
| 2_2014-08-20 | 2 | 2014-08-20 | 2014 | text value B |
| 1_2014-08-21 | 1 | 2014-08-21 | 2014 | text value C |
| 2_2014-08-21 | 2 | 2014-08-21 | 2014 | text value D |
+--------------+-------------+------------+------+--------------+

我需要更新同一列“数据”的值,如下所示:

+--------------+-------------+------------+------+--------------+
| unique_key | calendar_id | day | year | data |
+--------------+-------------+------------+------+--------------+
| 1_2014-08-20 | 1 | 2014-08-20 | 2014 | text value A |
| 2_2014-08-20 | 2 | 2014-08-20 | 2014 | text value A |
| 1_2014-08-21 | 1 | 2014-08-21 | 2014 | text value D |
| 2_2014-08-21 | 2 | 2014-08-21 | 2014 | text value D |
| 1_2014-08-22 | 1 | 2014-08-22 | 2014 | text value X |
| 2_2014-08-22 | 2 | 2014-08-22 | 2014 | text value X |
| 1_2014-08-23 | 1 | 2014-08-23 | 2014 | text value Y |
| 2_2014-08-23 | 2 | 2014-08-23 | 2014 | text value Y |
+--------------+-------------+------------+------+--------------+

非常感谢您的帮助!

最佳答案

我强烈建议不要同步/数据复制。您需要 24/7 运行守护程序,遇到问题的风险要高得多,而且效率也较低,因为它必须不断检查两个表中的新数据,这也意味着人们会延迟看到他们的新预订在网站上。当守护进程确实出现问题时,调试起来就不那么容易了。

下面的解决方案更容易调试,更高效。我建议你为数据编写抽象的 CRUD 代码:创建、读取、更新和删除。创建和更新可能是您最感兴趣的,您要做的是这样的:

<?php
function create($id, $data)
{
$id = mysql_real_escape_string($id);
$data = mysql_real_escape_string($data['data']);
mysqL_query("INSERT INTO calendars (unique_key,data) VALUES('".$id."','".$data."')");
mysqL_query("INSERT INTO days (unique_key,data) VALUES('".$id."','".$data."')");
}
function update($id, $data)
{
$id = mysql_real_escape_string($id);
$data = mysql_real_escape_string($data['data']);
mysqL_query("UPDATE calendars SET data = '".$data."' WHERE unique_key = '".$id."'");
mysqL_query("UPDATE days SET data = '".$data."' WHERE unique_key = '".$id."'");
}
create('1_2014-08-20', array(
'data' => 'data here'
));
update('1_2014-08-20', array(
'data' => 'data here'
));

这就像向其中传递数据一样简单。如果您修改了 SQL 结构,则可以创建遵循新数据库结构的新函数/类抽象集,并且就像替换包含一样简单。

关于PHP/MySQL : synchronize two fields in the same table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25117649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com