我试图在两个不同的mysql表中插入记录。情况如下:
表1:is_main
包含名为id
的主键的度假村记录。
表2:is_features
包含度假村可以拥有的功能列表(即海滩,滑雪,水疗等......)。每个功能都有一个名为id
的主键。
表3:is_i2f
将每个度假村ID与功能ID相关联。此表包含两个字段:id_i
和id_f
。这两个字段都是主键。
我已经创建了一个表单来插入一个新的度假胜地,但我被困在这里。我需要一个正确的mysql查询来在is_main
表中插入一个新的求助,并在is_i2f
中为每个要素插入一条记录,其中id为度假村ID id_i
和id功能标识id_f
。
$features = ['beach','relax','city_break','theme_park','ski','spa','views','fine_dining','golf'];
mysql_query("INSERT INTO is_main (inv_name, armchair, holiday, sipp, resort, price, rooms, inv_length, more_info)
VALUES ('$name', '$armchair', '$holiday', '$sipp', '$resort', '$price', '$rooms', '$length', '$more_info')");
$id = mysql_insert_id();
foreach($features as $feature) {
if(isset($_POST[$feature])) {
$$feature = 1;
mysql_query("INSERT INTO is_i2f (id_i, id_f) VALUES (" . $id . ", ?????????????? /missing part here????/ ); }
else {
$$feature = 0; }
}
感谢。 拜托,我要去CrAzY !!!!!!!!!!!!!!
答案 0 :(得分:0)
这可能与您无关,但是......
让链接表无人居住会更有意义吗?您可以使用JOIN
来选择填充应用程序中各种视图等所需的内容
即。查询以获得具有所有功能的1个度假胜地:
SELECT
Id,
f.Id,
f.Name
FROM IS_MAIN m
CROSS JOIN IS_FEATURES f
WHERE m.Id = $RequiredResortId
答案 1 :(得分:0)
请在Mysql insert into 2 tables上找到答案。
如果您想一次多次插入,可以编写SP以满足您的需求
答案 2 :(得分:0)
如果我理解正确,您可以将可插入/选定值的可变数量连接到一个查询中。 (这是第一个需要id
的查询。)
//initializing variables
$id = mysql_insert_id();
$qTail = '';
$i = -1;
//standard beginning
$qHead = "INSERT INTO `is_i2f` (`id`,`feature`) VALUES ";
//loop through variable amount of variables
foreach($features] as $key => $feature) {
$i++;
//id stays the same, $feature varies
$qValues[$i] = "('{$id}', '{$feature}')";
//multiple values into one string
$qTail .= $qValues[$i] . ',';
} //end of foreach
//concatenate working query, need to remove last comma from $qTail
$q = $qHead . rtrim($qTail, ',');
现在您应该有一个可用的insert
查询$q
。只需echo
它,看看它的外观和测试是否有效。
希望是这样的。如果没有,抱歉...