[請益] mysql query 一問

看板PHP作者 (徐小馬)時間16年前 (2009/03/04 10:56), 編輯推噓2(203)
留言5則, 2人參與, 最新討論串1/3 (看更多)
小弟的資料庫大概上長成這樣 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

03/04 19:27, , 1F
你是指標色的沒抓到嗎?= =看不懂你的寫法…
03/04 19:27, 1F

03/04 19:28, , 2F
你語法不是都ok了,迴圈內的mysqli_fetch_row不用吧?
03/04 19:28, 2F
因為我預設資料排序都是 81->82 , 81->82 所以 while 那行抓到的是 FormsNo=81 的資料 進迴圈後換下一行,就會得到 FormsNo=82 的資料 這寫法是我參考別人的,我覺得不是很好 因為的確這個資料庫排序並不是很規律(像是有標色的那兩行) 有時候還不只會順序不同,還會中間插入很多筆其他資料

03/04 20:08, , 3F
FormsNo=81 怎麼會出現82的東西..
03/04 20:08, 3F

03/04 20:09, , 4F
我想你搞錯SQL的運作方式了 他是取出子集給你
03/04 20:09, 4F

03/04 20:10, , 5F
不是不是把cursor移到符合條件的第一筆
03/04 20:10, 5F
嗯...我大概瞭解,不過不是很確定你想要告訴我的是什麼.... 我的確是取出子集 (FormsNo=81) 所以取出的應該是上色的這三個: 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=82 我都可以正確取到 但是第三筆因為順序的關係,就沒辦法用 fetch row 來作了 ※ 編輯: cm88guy 來自: 140.113.34.59 (03/05 19:31)
文章代碼(AID): #19hUt7SG (PHP)
討論串 (同標題文章)
文章代碼(AID): #19hUt7SG (PHP)