将逗号分隔的多个字段添加到数据库PHP中

时间:2016-03-29 22:41:46

标签: php mysql forms sql-insert

提前感谢您提供任何帮助!我是PHP的新手,非常喜欢一些建议/帮助!我希望用逗号分隔的许多id字段分别用相同的资源id变量输入到数据库中。

Find a link to a picture here! Here, a user enters many ids for the name, and only one ID for the resource, I would like all ids to be entered into the database with the same resource id beside it

//so this is creating the array to split up the ids
$array = explode(",", $id);
//finding length of array
$length = count($array);
//now we want to loop through this array, and pass in each variable to the db
for ($x = 0; $x < $length; $x++) {
 $sqlinsert= "INSERT INTO ids_to_resources (id, resource_id) 
    VALUES ($id [$x], $resource_id)"

    $result = mysqli_query($dbcon,$sqlinsert);
} 

我认为它可能就像上面的代码一样,但它似乎并没有为我工作...... 简而言之,我希望用户输入许多ID字段和仅一个资源字段,并将其分别输入数据库。我希望这是有道理的! 再次感谢您给予的任何帮助!

3 个答案:

答案 0 :(得分:1)

仅回答您的问题,而不是质疑您的数据库架构。看看下面的代码:

$ids = explode(",", $id);
$inserts = array();
foreach ($ids as $id) {
    $inserts[] = "($id,$resource_id)";
}
$query = "INSERT INTO ids_to_resources (id,resource_id) VALUES " . implode(',', $inserts) . ";";

您可以在一个SQL查询中插入多行,方法是用逗号分隔。代码应生成如下查询:

INSERT INTO ids_to_resources (id,resource_id) VALUES (1,4),(2,4),(3,4);

答案 1 :(得分:0)

此行之后你没有分号,而且你在$ id和[$ x]之间留有空格

$sqlinsert= "INSERT INTO ids_to_resources (id, resource_id) 
VALUES ($id[$x], $resource_id)";

答案 2 :(得分:0)

您最好创建一个单独的表,每个记录都有一个新行...列将是ID,NINJA_ID,RESOURCE_ID。然后以这种方式插入。在RESOURCE_ID上放置一个索引。通过这种方式,您可以轻松地在数据库中搜索特定记录,更新和删除也会更加轻松。

但如果你坚持做逗号,

$comma_ids = implode("," $array);