2015-06-14 65 views
-2

我有一個MySQL表jazyk_en具有正確的行9NOT條件不工作

我需要執行,如果操作只如果沒有,所以我使用的價值9這樣的:

if ($_POST['jazyk'] == 'en' AND $jaz !== '9'){ 
    mysql_query("UPDATE user SET jazyk='en' where name='".$username."'"); 
} 

當我通過echo顯示$jaz,果然名不虛傳9,但MySQL的仍然是即使我更新添加$jaz !== '9'

我甚至試過$jaz < 5,這也適用於我。還是行不通。

我真的絕望了,因爲我不明白爲什麼它不應該正常工作的理由...

你知道這個問題可能是什麼?

謝謝!

+0

'!=='是PHP語法。你正在使用MySQL。兩個不同的動物。它的列類型是什麼? –

+0

*「有一列'jazyk_en'」*,你正在使用'SET jazyk ='en''? –

+0

'$ jazykaktivni_q = mysql_query(「select * from user where name ='」。$ username。「'」); $ jazykaktivni = mysql_fetch_array($ jazykaktivni_q); $ jaz = $ jazykaktivni ['jazyk_en'];'這是代碼。列類型是varchar,但我試圖改變爲另一種類型。還是行不通。 –

回答

0

...AND $jaz != '9')...只使用單一=同時用NOT EQUAL!=

+0

謝謝,但仍然無法正常工作。我使用了許多組合,沒有人工作。 –

+0

放一些更多或完整的代碼來評估。 –

+0

嘗試分配一些新的值並像'$ jaz = 8;'一樣測試執行並測試。 –

0

不要使用echo調試你的PHP代碼,使用var_dump代替

它可以讓你展現你的變量

類型comapring嘗試

var_dump($jaz) 

並向我們展示結果

===檢查值是否相同,但檢查類型是否相同。 ==只檢查值而不檢查類型。

例子:

'9' == 9 //true 
'9' === 9 //false 
+0

它說'字符串(1)「9」' –

+0

這就是爲什麼你的比較是真實的(見我的文章)。 $ jaz'是一個包含字符'9'的字符串,它是一個字符串而不是一個整數。所以$ jaz不等於9(整數)。 ''9'!== 9 // true'。所以你應該試試:'$ jaz!= 9'沒有引用 – eroak

+0

謝謝,但不幸的是仍然無法正常工作。 –

0

嘗試使用以下編輯和也告訴我這columnvalue "9"截至目前我假定value "9"id,PS:你需要表現出更多的代碼, $jaz$username來自哪裏。 :

if ($_POST['jazyk'] == 'en' && $jaz != '9'){ 
    mysql_query("UPDATE user SET jazyk='en' where name='".$username."' AND id != '$jaz'"); 
}