我有一個非常bizzare的情況,我無法弄清楚發生了什麼事情。「fetch_assoc」值隨if語句,PHP變化而變化?
我有以下代碼:
$conn->query("UPDATE teachers SET active=1 WHERE id=".$next_teacher_id);
$list_of_arr=$conn->query("SELECT * FROM teachers WHERE id>=".$next_teacher_id);
$k = $list_of_arr->fetch_assoc();
$choice_array=unserialize($k['arr']);
foreach ($choice_array as $j) {
$matched_query=$conn->query("SELECT * FROM students WHERE taken_by='' AND name LIKE '%".$j."%'");
$matched_row=$matched_query->fetch_assoc();
if (isset($matched_row['id'])) {
$qu="UPDATE students SET taken_by='".$k['name']."' WHERE id=".$matched_row['id'];
echo($qu);
$conn->query($qu);
break;
}
$k=$list_of_arr->fetch_assoc();
}
這將呼應UPDATE students SET taken_by='' WHERE id=19
但是,如果我不是改線(無其他任何變動):
if (isset($matched_row['id']))
要:
if (isset($k['name']))
我現在得到的回聲:
UPDATE students SET taken_by='John Smith' WHERE id=
作爲對照實驗,如果我說:
if(true)
我得到的輸出:
UPDATE students SET taken_by='John Smith' WHERE id=
於是兩種不同的方式我做它實際切換我的輸出,我不能讓這兩個在查詢變量。這裏到底發生了什麼?任何幫助是極大的讚賞。
寫您的地方在此格式'WHERE ID ='的條件那 –
只是給了我這個「‘$ next_teacher_id。’‘:'UPDATE學生樹立taken_by =’約翰史密斯」 WHERE ID =‘’'作爲輸出。不知爲什麼,其中一個價值觀變得無效。但我不明白這兩個變量是如何相互影響的。 – rb612
但您正在用錯誤的語法編寫查詢。 –