看板 PHP 關於我們 聯絡資訊
※ 引述《goodtau (goodtau)》之銘言: : 不好意思打擾了 : if($_POST["comm"] == "推薦此店家" and $oldip!=$ip or $sec>$oldsec+600){ : $sSql="UPDATE `store` SET `store_recommend` = 'store_recommend+1' WHERE : `store_phone`='$p'"; : $result=mysql_query($sSql,$link); : } : 我想要做一個按了推薦按鈕 : 然後資料表內的推薦數就會+1 : 我翻了好幾本書 : 還是不知道為什麼我這樣寫 : 推薦數沒辦法+1 : 麻煩請大家指教了 : 謝謝 在mysql中, 有時資料表名稱或欄位名稱上不小心使用到關鍵字的話 在sql語法中會出錯 所以, 可以用`資料表`.`欄位` 來表示 以免發生錯誤 在此篇裡 $sSql="UPDATE `store` SET `store_recommend` = 'store_recommend+1' WHERE `store_phone`='$p'"; `store_recommend` = 'store_recommend+1' `store_recommend` 是欄位名稱 = 'store_recommend+1' <--這就是字串了 不管在PHP或是SQL語法裡, 用'(單引號)包起來的東西, 都是字串 假如 store_recommend 資料型態若是 int 時, 你若讓他等於 'store_recommend+1', 會是 0 所以, 你應該改成 `store_recommend` = `store_recommend` + 1 請注意到 ` 跟 ' 的不同 另外,在使用mysql時, 請善用 mysql_error() 來除錯 希望你在學PHP跟SQL語法時不要只會照著書打 要懂的他的用法,這樣在學習上才有幫助! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.124.82.43 ※ 編輯: lazyhome 來自: 122.231.232.57 (04/23 20:53)
goodtau:我改成` `結果還是不行ㄟ....? 04/23 23:26
skywalking:檢查 store_recommend 欄位的資料型態, 要整數型態 04/24 02:56
goodtau:是整數型態 04/24 08:49
lazyhome:echo mysql_error($link); 看看有沒有問題 04/24 09:42
※ 編輯: lazyhome 來自: 122.231.232.57 (04/24 09:42)
goodtau:試過了 沒有錯誤ㄟ... 04/25 00:54