ID ans1_r ans2_r ans3_r ans4_r ans5_r ans6_r
我在 anketemale 表格中有这些字段。所有字段都是整数。
$answer
是列名。 $id
是所选行的ID。
所以我想在特定的行中创建+1,只在ans字段中创建一个。我写了这段代码:
function upisi_malu($id,$answer)
{
$anketadb = $this->load->database('anketa',TRUE);
$anketadb->select($answer);
$anketadb->where('id', $id);
$q = $anketadb->get('anketemale');
foreach ($q->result() as $row)
{
$ans = $row->$answer + 1;
}
echo $answer; //just to know I echo them, and values are right
echo $ans;
echo $id;
$anketadb->set($answer, $ans);
$anketadb->where('id', $id);
$anketadb->insert('anketemale');
}
为什么此代码会在新行中写下每个更改?我只想改变现有的行。
答案 0 :(得分:2)
foreach ($q->result() as $row)
{
$ans = $row->$answer + 1;
$anketadb->set($answer, $ans);
$anketadb->where('id', $id);
$anketadb->update('anketemale');
}
这是我根据您的信息提出的最佳猜测。您的示例中使用的是insert
而不是update
。 insert
将始终创建一个新行... update
只会更新where
匹配时存在的行。