假设我有两张 table 。在“category_name”表中,有字段 category_id 和 category name。在“category_subscriptions”表中有字段 userid 和 category_number。
我想要做的是使用相同的用户 ID 为每个 category_id 在 category_subscriptions 中插入一行。
考虑具有以下值的“category_name”:4, cars, 5, trucks, 6, trains
“category_subscriptions(对于 userid=99)的理想输出表将具有以下值:99,4,99,5,99,6
而不是使用:
INSERT INTO category_subscriptions
VALUES (99,4)
INSERT INTO category_subscriptions
VALUES (99,5)
INSERT INTO category_subscriptions
VALUES (99,6)
我想我应该使用循环,因为 category.id 不会总是 4,5, &6。我只是不确定这是否正确,希望有人能提供帮助。这是 Joomla 1.7/php 插件的一部分。
最佳答案
假设你有一个数组 $Categories
包括你所有的category_id
的,你可以这样做:
$user_id = 99;
$Categories = array(4, 5, 6);
$sql = "INSERT INTO category_subscriptions VALUES ";
$i = 0;
foreach ($Categories as $categorie) {
if ($i++) $sql .= ", ";
$sql .= "({$user_id}, {$categorie})";
}
output这段代码是
INSERT INTO category_subscriptions VALUES (99, 4), (99, 5), (99, 6)
请注意,这会构建一个查询。您可以用一行插入多行 INSERT
使用 VALUES (<line1>), (<line2>) ...
的语句
编辑
如果您真的想将您的用户链接到每个 现有类别,您也可以使用纯 SQL 来完成。
INSERT INTO `category_subscriptions` (`userid`, `category_number`)
SELECT 99, `category_id` FROM `category_name`
关于php - 循环进入 PHP 数组,然后循环进入 SQL 插入...或其他不同的方式...请帮忙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9023609/