提前感谢您提供任何帮助!我是PHP的新手,非常喜欢一些建议/帮助!我希望用逗号分隔的许多id字段分别用相同的资源id变量输入到数据库中。
//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字段和仅一个资源字段,并将其分别输入数据库。我希望这是有道理的! 再次感谢您给予的任何帮助!
答案 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);