[問題]一個商店售賣所有類型裝備

WOG設定安裝教學

版主: 涅魂, 簫哥

leo199345
 
文章: 198
註冊時間: 2006-01-18 9:32 pm

[問題]一個商店售賣所有類型裝備

文章leo199345 » 2007-08-03 8:35 pm

要怎樣改才能使一個商店售出所有類型的裝備呢??

即是說一個商店內能買到武器,,頭部,,手部,,道具這樣~




涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

文章涅魂 » 2007-08-04 9:36 am

wog.js中其實就有例子可循了...0.0a

仿造道具屋,設定onclick事件為下列的javascript與法即可
代碼: 選擇全部
parent.th_submit(document.f1,1,\'[color=red]1,2,3,4,5,6[/color]\')



圖檔

leo199345
 
文章: 198
註冊時間: 2006-01-18 9:32 pm

文章leo199345 » 2007-08-04 11:25 am

對呀

我看到道具屋才想出這東西

不過當我改完後,,

進去那商店的時候就會彈出無此物品

不知為什麼呢??




涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

文章涅魂 » 2007-08-05 11:26 am

在function.php的type_name()中加入一個新的case看看
代碼: 選擇全部
case '1,2,3,4,5,6':
return 'a_id,d_head_id,d_body_id,d_hand_id,d_foot_id,d_item_id';
break;



圖檔

leo199345
 
文章: 198
註冊時間: 2006-01-18 9:32 pm

文章leo199345 » 2007-08-05 3:49 pm

行了@@"

謝涅大

不過a_id是d_type 0

涅大又一次的大意呀~~^^




涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

文章涅魂 » 2007-08-05 11:43 pm

呵呵,這樣的錯誤只要更正就OK了,會讓程式停止執行的錯誤才麻煩呢^^"

不過這有個小缺點,就是顯示的物品必須按照d_lv來劃分,若要解除這限制則要修改程式碼~


圖檔

leo199345
 
文章: 198
註冊時間: 2006-01-18 9:32 pm

文章leo199345 » 2007-08-06 12:32 pm

問題出現了=.=

那個可以賣所有東西的商店

購物後扣了錢,,但是貨就收不到@@"

成了一家黑店

為什麼呢??




涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

文章涅魂 » 2007-08-06 8:45 pm

應該是$a_id出了問題,資料庫嘗試存取名為a_id,d_head_id,.....的欄位,在取的時候沒有問題,會一次全部取出,但存時會發生問題

存時會變成類似這樣的SQL語法
代碼: 選擇全部
UPDATE wog_item SET a_id,d_head_id,d_body_id,d_hand_id,d_foot_id,d_item_id='.....' WHERE p_id=...

我想這個錯誤您應該能看得出來,這樣一來除錯就簡單了,對購買的物品重新設定$a_id就可以囉^^


圖檔

leo199345
 
文章: 198
註冊時間: 2006-01-18 9:32 pm

文章leo199345 » 2007-08-06 9:28 pm

其實還不是很明白

涅大能教我嗎??




涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

文章涅魂 » 2007-08-06 9:42 pm

上面那句SQL語法錯在紅字部分
代碼: 選擇全部
UPDATE wog_item SET [color=red]a_id,d_head_id,d_body_id,d_hand_id,d_foot_id,d_item_id='.....'[/color] WHERE p_id=...

UPDATE時每個有出現的欄位都必須指定一個值,但這句SQL語法卻有5個欄位沒有指定值,所以會出現錯誤

而這個SQL語法的原型如下
代碼: 選擇全部
$DB_site->query("update wog_item set ".$a_id."='".$pack[0]."' where p_id=".$user_id."");

上下比對一下應該能知道錯誤即出在$a_id上,因為這時$a_id的值是a_id,d_head_id,d_body_id,d_hand_id,d_foot_id,d_item_id,這與您期望的内容不符(您期望的應該是購買物品的類型)

而$a_id會變成這樣即是因為buy()程式內的這行
代碼: 選擇全部
check_type($_POST["temp_id"],1);

這個函式會設定$a_id的值,而設定的依據來自$_POST['temp_id'],這是由商店頁面傳回的值,內容是您所選擇的商店的類型(在目前這個情況下的值應該是1,2,3,4,5,6)

不知道說到這邊您了解了嗎?要解決您的問題的話就要修正$a_id的賦值方式,不要由$_POST['temp_id']來賦值,改由您選的商品來賦值

所以上面的那行check_type()可以改成這樣
代碼: 選擇全部
check_type($_POST["adds"]);

這樣應該就能解決問題了^^


圖檔

leo199345
 
文章: 198
註冊時間: 2006-01-18 9:32 pm

文章leo199345 » 2007-08-06 10:32 pm

解釋得十分詳細呀涅大

總算明白~~^^

經過架wog的這幾個月

對php的認識真是增加不少

由一開始,,只懂在水色抄程式碼

到現時起碼懂得弄些小功能

已經很大進步了

請涅大收下gp~

當作詳細教導會員的回報吧~~^^




涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

文章涅魂 » 2007-08-06 10:54 pm

呵呵,謝謝LEO的GP囉,好像很久沒收到這個禮物了XD

架設WOG只要能跨越基礎PHP+Javascript的障礙的話後面就較能得心應手了,不會碰上一個問題又卡半天,因為自己能夠執行些基本的除錯了^^

這時候下一步就是了解WOG整體架構了,這部份需要懂include(),global跟class (沒有OO)和DOM,如果這部份也弄清楚的話日後碰上問題應該也都能自己解決才是

期待您成為WOG達人的一天唷^^


圖檔


回到 精華區

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 3 位訪客