我从MySQL数据库创建了一个非常简单的id关联数组。
[0]=> array(1) { ["id"]=> int(2) }
[1]=> array(1) { ["id"]=> int(3) }
[2]=> array(1) { ["id"]=> int(4) }
[3]=> array(1) { ["id"]=> int(15) }
[4]=> array(1) { ["id"]=> int(17) }
[5]=> array(1) { ["id"]=> int(18) }
[6]=> array(1) { ["id"]=> int(3) } etc.
但是,出于使用数组的目的,我需要访问ID整数,以便它们可以用于标记父表中的行。但是,我创建的脚本似乎没有使用
[“id”]=>整数(2)
因此代码失败了。
我的代码如下:
MySQL代码:
public function unused()
{
$query = "select person.id from person, thing, person_thing
WHERE flag = 1 AND person.id = person_thing.person_id AND person_thing.thing_id = thing.id and thing.name != 'used'
AND person.name NOT IN (select person.name from person, thing, person_thing WHERE person.id = person_thing.person_id
AND person_thing.thing_id = thing.id and thing.name = 'used')";
$stmt = $this->Conn->prepare($query);
$stmt->execute(array());
return
$stmt->fetchAll(PDO::FETCH_ASSOC);
功能代码:
{
$things = $thing->unused();
$smarty->assign('thing_used', $things);
for ($i = 0; $i <= count($things); $i++) {
$gameView->iterateThings($things[$i]);
}
迭代方法代码
Public function iterateThings($id)
{
$changeFlag = "UPDATE thingview SET flag = false WHERE id= :id";
$stmt = $this->Conn->prepare($changeFlag);
$stmt->execute(array(':id' => $id));
}
我有一个名为set up的视图,其中boolean标志都设置为true。我正在尝试使用此代码更改所有人.ids在关联数组$things中。天真地,我认为这就足够了,但是每次运行代码时,标志都保持不变。数组的内容似乎是:
数组(1){[“id”]=>int(2)}
{[“id”]=>int(2)}