Re: [請益] mysql query 一問

看板PHP作者 (徐小馬)時間16年前 (2009/03/05 19:41), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串3/3 (看更多)
謝謝你,我暫時是用你建議的方式解決了 先用一個 while 把符合我條件的 SignUpNo 全部找出來 然後再用一個 while 把該 SingUpNo 當中 我要找的 FormsNo 所對應的 Content 取出來 我的 pseudo code 是這樣 use mysql query to get union:FormsNo=81 while(use fetch row to handle union:FormsNo=81 data 1 by 1) { simply get SignUpNo (Effective ones) use my sql query to get union:SignUpNoEff while(use fetch row to handle union:SignUpNoEff 1 by 1) { Process } } 這樣子 run 起來目前是還好,因為其實資料庫也沒那麼大 只是覺得好像會有更好的寫法~ 剛剛收到一位板友的建議 我研究一下再與大家分享 ※ 引述《flylinux (ㄚ琪)》之銘言: : 你可以在找到signupNO的迴圈裡 : 再加一個sql查詢 : 例如: : $sql2 = "select * from SignUpDetail where sNo>=000 and SignupNo = '".$row[1]."'"; : 又或者用join的sql來查詢應該也可以 : ※ 引述《cm88guy (徐小馬)》之銘言: : : 小弟的資料庫大概上長成這樣 : : sNo SignupNo FormsNo Content : : 1 001 01 : : 2 001 02 xxx : : 3 002 81 3/25 : : 4 002 82 王小名 : : 5 003 81 3/26 : : 6 003 82 林小名 : : 7 004 82 張小名 : : 8 004 81 3/25 : : 小弟需要的是,在龐大的資料庫中找到有 FormsNo=81(報名場次) 的 SignupNo : : 並且把該 SignupNo 的 FormsNo=82(報名姓名) 列印出來 : : $sql="SELECT * FROM SignUpDetail where sNo>=000 AND FormsNo=81"; : : $result=mysqli_query($link,$sql); : : while($row=mysqli_fetch_row($result)) : : { : : $row=mysqli_fetch_row($result); // 預設 81 之後一定是 82 : : printf ("%s\n", $row[3] ); // 把 82 的content印出來 : : } : : 可是這樣一但順序錯了的時候(像是有標色的那個),就完全沒用了 : : (而且好像非常蠢 @@) : : 想請問高手們 : : 是不是有比 mysqli_fetch_row() 這個函數更適合的用法呢? : : 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.34.59 ※ 編輯: cm88guy 來自: 140.113.34.59 (03/05 19:42)

03/05 20:09, , 1F
FormsNo,Content看起是為了擴充性而設計?
03/05 20:09, 1F

03/05 20:10, , 2F
不然將報名場次,報名姓名合併成同一個row是比較好
03/05 20:10, 2F

03/05 20:24, , 3F
資料庫不可能保證FormsNo=82一定會在FormsNo=81之後
03/05 20:24, 3F

03/05 20:25, , 4F
尤其在多人使用時,這更不可能。我想你需要把一些基
03/05 20:25, 4F

03/05 20:26, , 5F
本觀念學好,重新設計資料表。
03/05 20:26, 5F

03/05 21:35, , 6F
順序小問題,用order by formsno就好了,反正是數字
03/05 21:35, 6F
文章代碼(AID): #19hxfCp- (PHP)
討論串 (同標題文章)
文章代碼(AID): #19hxfCp- (PHP)