如果我有这样的表:
+-------------+-------------+
| Field | Type |
+-------------+-------------+
| document | varchar(35) |
| section | int(11) |
| selection | int(11) |
| status | varchar(35) |
+-------------+-------------+
我在 PHP 中有一个数组。让我们称之为$choices[]
。该列selection
对应于选择数组的数组索引。如果我向数组中添加一个或多个元素,$choices
那么我需要更新数据库。我将在一个循环中运行,$document
并且$section
也设置了。我不想假设我的编号中间没有丢失的行。$choices
检查 中每个元素的(文档、部分、选择) 、创建任何不存在的元素并将其状态设置为“新”的最有效方法是什么?我是否必须将其作为一个循环执行,还是有办法在一个查询中执行此操作?
这是完全未经测试的,但如果我不寻求帮助,这基本上就是我的做法。我猜想有人可能有比我更好的解决方案。
foreach($documents as $document)
{
foreach($sections as $section)
{
$choices=$master_array[$document][$section];
$ch_count=count($choices);
$counter=0;
while($counter < $ch_count-1)
{
$query="SELECT status FROM mytable WHERE document='$document' AND section='$section' AND selection='$counter'";
$result = mysql_query($query);
if(mysql_num_rows($result)==0)
{
$query="INSERT INTO mytable VALUES('$document','$section','$counter','new')";
$result = mysql_query($query);
}
$counter++;
}
}
}