Re: [請益] 跨資料表取欄位值

看板PHP作者 (恐八挖)時間14年前 (2011/10/27 21:29), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串2/2 (看更多)
我來猜解問題 ※ 引述《delighted817 (璇)》之銘言: : 哈囉大家好!我想要從Inventory這個資料表中取得ICount的值 : 並和從表單中得到的值相減最後存回ICount中 : 以下是我的程式碼... : $sql2 ="INSERT INTO `newERP`.`orderlist` (CNo, BDate, HDate, INo, IName, : IStandard,"; : $sql2.=" IQuantity) VALUES ('"; : $sql2.=$_POST["CNo"]."','".$_POST["BDate"]."','".$_POST["HDate"]."', : '".$_POST["INo"]."','".$_POST["IName"]."','"; : $sql2.=$_POST["IStandard"]."','".$_POST["IQuantity"]."')"; : $sql4="SELECT ICount FROM Inventory "; : $sql3="UPDATE Inventory SET ICount=ICount-".$_POST["IQuantity"]."' : WHERE INo= ".$_POST["INo"]." "; : 執行出來的結果是 我們先假設以下的狀況有二 1. 逐一執行 2. 同時執行 3. 其他 : SQL: : INSERT INTO `newERP`.`orderlist` (CNo, BDate, HDate, INo, IName, IStandard, : IQuantity) VALUES (' 78','2011-10-27T08:58Z','2011-10-27T08:57Z',' 101', : ' 計算機概論',' 參考書',' 1'),SELECT ICount FROM Inventory , : UPDATE Inventory SET ICount=ICount- 1' WHERE INo= 101 : 不知道為什麼ICount一直都抓不到值@@" : 請問有人知道怎麼解決嗎? 1. 逐一執行的情況下 第二行語法沒問題(假設是這樣),所以我們看到你的第三行 UPDATE Inventory SET ICount = ICount -1' WHERE INo= 101 光是這個單引號就有問題了,Icount -1 沒錯,但多這個引號可能就會造成錯誤 You have an error in your SQL syntax 2. 同時執行 這種叫可能你是跑 mysql_query($sql2 . $sql3 . $sql4 .. ) 在 phpMyAdmin 中跑 SQL 的話,可以一次跑多行沒錯,但是在 mysql_query 中.. mysql_query() sends a unique query (multiple queries are not supported) to ... ref: http://tw2.php.net/mysql_query 在網站 php 跑 mysql_query 有不可執行多行的限制,所以你跑的東西會失敗 3. 其他 其它又分為二,第一個狀況絕對只能說... 恩... 你根本沒執行 mysql_query() ... 不過這種機會近乎於零,所以我們排除 那第二種狀況是甚麼呢? 可能是你以為 執行 SQL 給定變數要跟 PHP 一樣先取得才能更新 所以你才先跑 SELECT ICount FROM Inventory 然後又跑 UPDATE Inventory SET ICount=ICount- 1' WHERE INo= 101 可能是認為要先 SELECT 出 ICount 後才可以在後面 UPDATE.. 那這個就是SQL概念的問題了,簡單的說就是多此一舉.. 資料庫是會自己認變數的,除非你是PHP變數.. 我能猜想到的情況就這樣了,如果還不是的話... 請其他大大幫忙吧Orz -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.37.65.193 ※ 編輯: kerash 來自: 114.37.65.193 (10/27 21:29)

10/28 02:05, , 1F
你人真好(發)
10/28 02:05, 1F

10/28 08:47, , 2F
Orz..你發我卡
10/28 08:47, 2F

10/28 10:11, , 3F
不用收,可以(撕) :D
10/28 10:11, 3F

10/28 10:32, , 4F
謝謝解答!我先試試看,如果有問題我在PO上來!
10/28 10:32, 4F

10/28 11:35, , 5F
你可以說說看你的想法是哪個Orz
10/28 11:35, 5F
文章代碼(AID): #1EgLogcT (PHP)
討論串 (同標題文章)
文章代碼(AID): #1EgLogcT (PHP)