php - 循环进入 PHP 数组,然后循环进入 SQL 插入...或其他不同的方式...请帮忙

标签 php mysql joomla

假设我有两张 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/

相关文章:

php - 将 .JS 文件移动到 CDN : How to manage AJAX requests?

MYSQL 将字符串传递给 IN 运算符在 nodejs 中不起作用

mysql - 出生日期 + 生日 SQL

mysql - 查询为空 SQL=

php - 是否有任何可用于 php 的小型 cms

php - 过滤 GridView 中不在表 yii2 中的自定义列

php - 从哪里获取具有 sql_exec 的 MySql UDF?

php - Joomla 1.6 和 CakePHP 集成

mysql - 最佳实践 Joomla 多语言国家列表数据库表?

PHP sqlsrv : passing a resource from a function