Yahoo Answers is shutting down on May 4th, 2021 (Eastern Time) and beginning April 20th, 2021 (Eastern Time) the Yahoo Answers website will be in read-only mode. There will be no changes to other Yahoo properties or services, or your Yahoo account. You can find more information about the Yahoo Answers shutdown and how to download your data on this help page.

我的PHP程式哪裡出問題

我寫的用意是要讓

我的程式在輸入學年和學期後

就會跑出該學期的學期的註冊單~

但是按下去都沒反應呢?

http://paste.plurk.com/show/145560/

(程式在這)

Update:

痾...這個嗎~我想我大概了一些了

所以我重做了

請看。↓

http://paste.plurk.com/show/146709/

(此為資料的呈現)

http://paste.plurk.com/show/146710/

(這是填入資料的地方)

現在按下去只會讀到第一筆

想請問

如何讀到全部(因為這部分我要讓學生姓名和年級班級座號和學號每張都跑出來)

但是!~我所輸入的(假設)98年第1學期的money和ps的地方都要一樣

HOW ?

4 Answers

Rating
  • 1 decade ago
    Favorite Answer

    您這段code真是看的小弟我一頭霧水...

    sql那行使用了讀取(select語法),又有寫入(...)values(...)語法,

    您到底是要寫入還是讀取?小弟才疏學淺,沒看過可以這樣寫的sql語法。

    接著下面有一堆$_GET變數,這些變數從何而來?或許您還有另外一個

    表單網頁沒po上來,如果真是這樣的話,您那段sql應該就是要寫入用的,

    應該是:

    insert into .....

    而不是select * from ....

    又假設您是要讀取,那麼便是使用select * from ....

    但while( $row = mysqli_fetch_assoc($result))讀取後,

    應該也不是用$_GET,否則那一行while不就是多餘的了嗎?

    所以,我想您應該先把邏輯分清楚,讀取是讀取,寫入是寫入。

    2010-01-20 10:34:12 補充:

    誠如Eason Ryan大所說,您或許還有一個表單網頁,

    是不是把它也貼上來,這樣比較方便幫您除錯喔。

    2010-01-21 00:16:20 補充:

    大略看了一下,我想關鍵應該是在這一行:

    while($kb = mysqli_fetch_assoc($rb) and $kp = mysqli_fetch_assoc($rp) and $kq = mysqli_fetch_assoc($rq))

    只要其中一個查詢結果結束了,那麼迴圈也就掛了。

    小小建議:適當的為變數名稱取一個「好名字」有助於自己與別人閱讀喔,

    當您的程式愈加龐大的時候,這一個好習慣能幫您省下不少時間,祝您成功。

  • Sam
    Lv 6
    1 decade ago

    很多個錯誤我要指正一下:

    1.你是列印頁面,所以不可能是資料寫入,但你的搜尋會有條件。

    不管你的條件是post或是get都應該要有$變數 = $_POST["XXXX"];(或$_GET或$_REQUEST)

    而搜尋條件式是:$sql = "SELECT * FROM 資料表 WHERE 搜尋條件的欄位='$變數'";

    2.$result = mysql_query(資料字串,資料庫來源);

    你後面寫反了,另外如果只有一個資料庫來源時,資料庫來源可省略。

    2010-01-20 10:53:11 補充:

    3.while($rows = mysql_fetch_assoc($result))

    請註意,當你確定你要取的資料只有「絕對第一筆」或「只有一筆」時,就不需要用到while。

    以及當你這樣下指令時,$rows是一個陣列

    陣列的指標就是你欄位名稱,例如資料庫的姓名欄位是name。

    你輸出就要寫成:$rows["name"];

    4.結構化程式來講,一個程式只能有一個echo,所以初學時我都建議把echo改成變數,進階一點是把文字的內容放在一個函式,高等應用是乾脆就讓他當html檔,另外呼叫進來使用。(讓程式歸程式,html歸html)

    2010-01-20 10:56:45 補充:

    5.這是繼承4的內容,不要讓你的文字造成你的程式難以閱讀,良好的結構及寫作習慣可以讓你的程式處在非常有彈性靈活修改及運用的情況。

    (註:很多人都拿自己初學者做為理由,但有很多程式學習的動作是在初學者階段就必需"調教"的,以免過了半年,要回頭改程式發現改不動,才在那邊煩惱是不是要重寫。不過!大部份的初學者還是會經歷這段痛苦期就是了。重寫?修改?那個比較有效率?初學者大半到一定的階段就會面臨這樣的問題。)

  • 1 decade ago

    你送出後的test2.php貼出來看一下吧~

    看起來是test2.php有問題...可能是送出POST但接收時用GET

  • 1 decade ago

    好啦 我錯了 看到你的回答我都不好意思了 呵呵

    我是想~~

    有兩欄資料

    但是呢~我不知道怎麼讓它變成說

    在一個網頁上~我輸入98年第1學期後(假設)

    然後他會呈現的是那兩欄資料的98第1學期各個不同的資料

    所以..看來偶做錯了..(還花了3小時勒)

    可以交我嗎=.=

    2010-01-20 22:21:19 補充:

    呵呵 這些意見都快變成答案了 受教不少 多謝ㄋ^^

    那我想我重做的這些因該有符合小狐狸上面所說的了吧XD

    只是我不曉得為什麼只有跑出第一筆ˊˋ"

    還是多謝啦 呵!

Still have questions? Get your answers by asking now.