台灣最大程式設計社群網站
線上人數
748
 
會員總數:245812
討論主題:189439
歡迎您免費加入會員
討論區列表 >> PHP >> 程式結合欄位問題
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
程式結合欄位問題
價值 : 25 QP  點閱數:965 回應數:19
樓主

惟欸
門外漢
0 20
188 30
發送站內信

捐贈 VP 給 惟欸
小弟最近在接觸程式結合
以下code測試可以執行
2個欄位可執行




但小弟想說想要添加幾行欄位
卻發生資料填寫完卻無法送出執行
想問說是74~79行這幾行的問題嗎?



後端也多了10~17行
不知是不是也有問題


小弟愚鈍 想說從2個欄位變多個欄位
但卻無法送出並且執行
還煩請各位大哥好手
給予小弟指教
謝謝

搜尋相關Tags的文章: [ 欄位問題 ] ,
本篇文章發表於2016-03-07 22:11
1樓
不錯的參考

皮皮快跑
檢舉此回應
首先我想問你一個問題。
你有開瀏覽器的除錯模式去看資料response的內容嗎?
寫程式不是靠猜測的。
善用除錯工具,說不定你可以很快找到問題點。
在我來說,把你的code全部看完然後再找出問題,再丟code給你。
相信我,這不是在幫你,這是在害你。
確認清楚你問題的需求,並且告訴你正確的除錯方法。
你再一步一步的去偵錯並修正,這麼一來你才能建立正確解問題的觀念。
總之,你信我的就照我建議的去做。
否則,你每遇到一次問題就要發問一次。
我相信你自己當下也很痛苦…為什麼問題都解決不掉。
其實不是你解不掉,而是你用錯解決事情的方法而已。
本篇文章回覆於2016-03-07 23:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
不錯的參考

彩虹
檢舉此回應
你說的無法執行是指
表單送不出去?
還是送出去後出現錯誤?

但我目前確定的是,你的SQL insert指令根本下錯了

正確的方法如下



但你的用法卻少了欄未給他,變成這樣,有發現嗎




本篇文章回覆於2016-03-08 09:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
不錯的參考

彩虹
檢舉此回應
所以我有點懷疑你原本的code真的有正確執行嗎?
因為insert指令一樣錯了
本篇文章回覆於2016-03-08 09:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
最有價值解答

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
TO:彩虹
INSERT INTO ksu VALUES('$name' ,'$age')這樣的語法並非一定是錯的。
如果他這張表的確只有兩組欄位的話。這樣是可以運行的。
INSERT 並不一定要指定欄位名稱。(當然一般最好還是要指定。免得對應錯的欄位)
只是如果不指定的話,其預設就是得要帶入全部欄位的值。
所以它原本可以運行是有可能的。

to:惟欸
我跟彩虹說的東西,對你的問題也是同樣的意思。
你增加了欄位,其資料表的欄位是否有對應增加了呢???欄位名的對應是否有正確呢??
沒有任何錯誤碼嗎??

可以先試看看不要經過ajax的方式。直接發送看看試試看有無錯誤。
不過看到你一項值得鼓勵的事了。
你總算用了button了。但就如我上面說的。你可以先將其type再改回submit。試試直接發送會不會正確。
這些都是除錯的基本。
本篇文章回覆於2016-03-08 10:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
不錯的參考

皮皮快跑
檢舉此回應
老實說……
指令有沒有下錯根本就不重要。
我們常常在講「正確解決事情的方法」,而不是「原本的問題發生了什麼事」……
前面我才說過,直接貼code指正錯誤如果偶一為之可能就只是個提醒。
但對於長期發問的人我們應該要告訴他的是正確debug的態度,而不是告訴他錯在什麼地方。

@惟欸:
我不希望你只是看到了答案有一種「喔!原來是這裡的問題」這樣的想法。
因為做為一個程式設計師,基本上是不太允許由別人來告訴你答案這種事情的。
如果是初學,一次、二次倒也罷了。但如果那麼多次都還是這樣,這表示處理事情的方法就是不對的。

我希望你聽進這件事,然後去做一件事:

不要只是看著別人直接給你的答案而去修改。
你要做的事讓那個錯誤產生可供偵測的內容顯示出來。


面對這麼些的一個問題,自始至終誰才真正搞錯重點了?
我根本不在乎程式發生了什麼錯誤。
我只在乎這個錯誤你有沒有一個很有效率甚至是自動化去產生出立即可視的結果。
debug這件事最忌「人腦debug」。
是人都會犯錯,是人都有可能會有忽略狀況的時候。
但如果你平常就養成正確的debug習慣。會懂得在該輸出結果的地方看到結果。
不管你是自己寫unit test工具也好,善用官方的phpunit也好,或是去使用像junit也罷。
(或是開著瀏覽器的開發人員工具也行)。
真正要學習的就是去善用自動資源來幫你快速解決問題。
而且最重要的事情是,這一套模式只要學一次起來,你幾乎就不會有什麼問題了。

如果今天你的問題是什麼東西你不會做,你不知道怎麼做。
那麼給你一個範例也許就是好的。
但重點是你是在做的過程中遇到解不開的結。
那你應該去想的就是這個結能給你什麼訊息,讓你更容易的解開他。
這才是正確的「方法」。

(另外一點就是,很有可能別人說的方法在他的電腦跑是不行,在你的電腦跑可以,這很難說的準是環境設定上的問題。也許版本也是個問題。
所以最重要的,還是你自己能不能顯示出「正確」或是「錯誤」的結果)
本篇文章回覆於2016-03-08 10:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
不錯的參考

彩虹
檢舉此回應
TO:版主
INSERT INTO ksu VALUES('$name' ,'$age')這樣的語法並非一定是錯的。
如果他這張表的確只有兩組欄位的話。這樣是可以運行的。

INSERT 並不一定要指定欄位名稱。(當然一般最好還是要指定。免得對應錯的欄位)
只是如果不指定的話,其預設就是得要帶入全部欄位的值。
所以它原本可以運行是有可能的。


是可以運行沒錯,但通常會發生錯誤也是在這個地方,我是不太推薦這個方式啦 XDDD,因為是依序對應上去
他原先的方式是正確的(之前的提問),不曉得為什麼後來會把欄位拿掉



TO:惟欸
你真的要學會如何debug
從你這一個例子,我提供你一些步驟來debug

1.我是習慣使用google chrome瀏覽器來看網頁,按鍵盤「F12」或者「Ctrl+Shift+I」來開啟「開發人員工具」
一般頁面上看不到錯誤的資訊,會在此地方看到錯誤
另外請先確認 userInfo.php頁面是否真的存在

2.如果第一步確認沒有看到錯誤,表示你的程式碼目前是可行的,再來細看程式碼
由於你在 userInfo.php,只是將結果打印在頁面上(1與0)
如果結果端不是印出「1」或「0」,你裡面的判斷if(data=="1"){} if(data=="0"){}根本都不會跑進去
建議你在判斷式上加上alert(data);
來看data到底是1還是0,如果有出現錯誤的話,至少也會打印出來
然後再回去userInfo.php檢查這邊有沒有什麼錯誤

本篇文章回覆於2016-03-08 10:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
不錯的參考

皮皮快跑
檢舉此回應


alert()???
請問一下alert()的用途是???
小的才疏學淺…不明白alert()放在這的意義是???
本篇文章回覆於2016-03-08 10:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
不錯的參考

彩虹
檢舉此回應
我說了,就以他這個例子、就以他這個例子、就以他這個例子,很重要,所以我說三次
作者是把透過$.post()傳送,然後將資料打印在userInfo.php頁面上,然後再接收回來

我敢保證它如果是insert指令的問題,他會看不到錯誤訊息
如果不alert(data)出來,看起來就像是按鈕無效,怎麼按都沒反應

本篇文章回覆於2016-03-08 10:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
不錯的參考

皮皮快跑
檢舉此回應
所以不我不明白啊!
為什麼是alert()?為什麼是alert()?為什麼是alert()?
很重要的問題,所以我問三次!
本篇文章回覆於2016-03-08 11:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
不錯的參考

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
to:彩虹

其實我是針對你#2給的答案跟你說的。
我文中也有說,一般不要這樣用。但不代表該語法是錯的。
其實不指定欄位的語法。一般來說會用到copy表時使用。


只要這兩張表的欄位是一樣的。就可以這樣使用。
這也是為何mysql語法會保留可以不指定欄位的情況。簡單來說這是一種簡寫法

因為怕你教錯錯誤的訊息,所以才會導正你的話一下。
要不然怕初學者會奇怪說。「那我怎麼可以用,現在不能用」
所以我才會先教導其原理及正確的觀念。而不是說這樣是錯的。
這樣反而會造成初學者以為你在唬爛或不知所措。

TO:惟欸
相信上面都教你許多了。
再多告訴你一個指令。這是debug必要學的東西
console.log(參數)
這個會在其f12的開發者工具內。在其console輸出顯示。
可以查看你的輸出值是否正確。且又不影響程式的運行。
大多數我都會用個funtion處理如



這樣以後我要在javascript除錯。就直接用debug(參數)就好。
等到正式運行時。再去將on改成0。就不會輸出了。也無需再去改程式。
(雖然最好還是直接拿掉會比較好)
本篇文章回覆於2016-03-08 11:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
不錯的參考

彩虹
檢舉此回應
要用conlose.log();
也是可以阿,但就怕他連開發者者工具都不會用
他是要在哪邊看到console.log()訊息
本篇文章回覆於2016-03-08 11:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
不錯的參考

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
其實~~~~~~如果直的是php的內部錯誤
正常來講。alert也不會跑吧。(因該會javascript程式中斷了)
所以~~~~~~alert的確很沒有意義。

還是用console.log比較實在。因為~~~~這也可以強迫初學者用f12的開發者工具來查看。
本篇文章回覆於2016-03-08 11:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
作者回應

惟欸
捐贈 VP 給 惟欸 檢舉此回應
小弟按了F12後
跑出了1個error
在Console裡
跑出
Uncaught SyntaxError: missing ) after argument list
本篇文章回覆於2016-03-08 11:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
不錯的參考

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
那你不就知道你錯在哪了嗎??
這樣還需要問??

冥不是很明白的告訴你語法錯誤了嗎??
本篇文章回覆於2016-03-08 11:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
不錯的參考

彩虹
檢舉此回應
在Console裡跑出Uncaught SyntaxError: missing ) after argument list
就已經指出錯誤的地方了~而且這個bug是很好處理的

不過我先前有直接複製你提供的程式碼,是沒有看到這個錯誤~
你一定後續還改了些什麼對吧

你再貼一次你目前改好的程式碼,我再幫一次,希望下一次不要再有類似的問題出現
因為我發現你最近的問題都在類似的點不斷打轉 0.0
你有發現嗎

本篇文章回覆於2016-03-08 12:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   

回覆
如要回應,請先登入.