gpt4 book ai didi

php/mysql 使用多个表创建重复记录

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

我正在建立一个用于酒店预订的数据库。一张名为“reservations”的表保存预订的一般详细信息,而另一个名为“rooms”的表保存有关特定房间的详细信息(每个预订有许多房间,每个房间只属于一个预订)。

我希望能够轻松生成重复的预订记录(当然,主键除外)。我的问题是将房间数据生成为数组,然后将其插入到房间表中,同时与其预订相关联。

我已经完成了以下简单的代码(出于讨论目的,精简到最基本的内容)。

if (isset($_POST['action']) and $_POST['action'] == 'Duplicate')
{
include $_SERVER['DOCUMENT_ROOT'] . '/includes/connect.inc.php';
$id = mysqli_real_escape_string($link, $_POST['id']);

// retrieve reservation
$sql = "SELECT type_of_reservation FROM reservations WHERE id='$id'";
$result = mysqli_query($link, $sql);
$row = mysqli_fetch_array($result);
$type_of_reservation = $row['type_of_reservation'];
// create new reservation record
$sql = "INSERT INTO reservations SET type_of_reservation ='$type_of_reservation'";
$id = mysqli_insert_id($link);

// retrieve rooms
$sql = "SELECT reservation_id, in_date FROM rooms WHERE reservation_id='$id'";
$result = mysqli_query($link, $sql);
while ($row = mysqli_fetch_array($result))
{
$rooms[] = array('reservation_id' => $row['reservation_id'], 'in_date' => $row['in_date']);
}

最大的问题是,现在怎么办?我尝试过的所有操作要么生成错误,要么没有新条目,而且我似乎找不到任何解决此特定需求的讨论。感谢您的帮助。

最佳答案

PeterC,没有列出显示您插入 ROOM 记录信息的代码。在代码的//retrieve room 部分中,您正在提取数据并将其放入数组中。如果您确实想创建重复记录,我会在数据库内使用 in insert ,那么您不必将记录拉出只是将它们放回原处。

您想要的代码如下所示。它将取代您列出的//retrieve rooms 代码:(伪代码)[注意:$id 代表从重复预订的 sql 插入中新选择的 id]

插入房间(res_id其他数据) SELECT $id, other, data FROM rooms WHERE id = $_POST['id'];

这将允许您复制房间数据,在数据库中添加新的reservation_id。无需拉出记录、创建插入,然后将它们放回原处。您可以在此处阅读有关 INSERT INTO ... SELECT 语句的更多信息:http://dev.mysql.com/doc/refman/5.0/en/ansi-diff-select-into-table.html

关于php/mysql 使用多个表创建重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2393091/

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