[請益] mysql query 一問
小弟的資料庫大概上長成這樣
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
03/04 19:28, 2F
因為我預設資料排序都是 81->82 , 81->82
所以 while 那行抓到的是 FormsNo=81 的資料
進迴圈後換下一行,就會得到 FormsNo=82 的資料
這寫法是我參考別人的,我覺得不是很好
因為的確這個資料庫排序並不是很規律(像是有標色的那兩行)
有時候還不只會順序不同,還會中間插入很多筆其他資料
推
03/04 20:08, , 3F
03/04 20:08, 3F
→
03/04 20:09, , 4F
03/04 20:09, 4F
→
03/04 20:10, , 5F
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)
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章