[請益] 在While row內的多次搜尋

看板PHP作者 (阿古)時間16年前 (2008/03/15 14:56), 編輯推噓4(4010)
留言14則, 5人參與, 最新討論串1/1
$sql="SELECT * FROM `product` WHERE `logo`='$logo' ORDER BY price"; $result = mysql_query($sql,$link); while($row=mysql_fetch_assoc($result)) { $sql2 = "SELECT * FROM `message` WHERE `p_id`=".$row["p_id"].""; $result2 = mysql_query($sql2,$link); $count= mysql_num_rows($result2); . . . 在第一次query之後,while會帶著 $row["p_id"] 跑每一筆資料的p_id, 利用這個回傳值,再做一次query查messages這table內相關的資料數量,但只有 第一筆成功回傳數值,接下來的都出現 mysql_num_rows(): supplied argument is not a valid MySQL result resource in 這行如果有寫die(XXX) $result2 = mysql_query($sql2,$link) or die(XXX); 就在這行停掉 也曾試過在while最下面寫mysql_free_result( $result2 ); 還是沒用 問題在哪裡呢? <(_ _)>跪求 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.170.11.113

03/16 00:31, , 1F
找不到值 所以result2沒東西
03/16 00:31, 1F

03/16 13:33, , 2F
非也 supplied argument is not a valid MySQL result
03/16 13:33, 2F

03/16 13:34, , 3F
的原因是SQL有錯 就算找不到也會傳回一個MySQL result
03/16 13:34, 3F

03/16 13:35, , 4F
resource; 可以在那行後面echo mysql_error();出來看
03/16 13:35, 4F

03/16 13:35, , 5F
SQL有錯=>應該修正為query失敗 不一定是SQL的問題
03/16 13:35, 5F

03/16 13:36, , 6F
也有可能是資料表沒設好
03/16 13:36, 6F

03/17 12:26, , 7F
`p_id`=".$row["p_id"]."錯在這,與朋友一起找出來了
03/17 12:26, 7F

03/17 12:26, , 8F
row[p_id] 先拿出來 存在其它變數 就OK了
03/17 12:26, 8F

03/17 12:27, , 9F
$id = $row["p_id"] `p_id`=$id
03/17 12:27, 9F

03/17 12:28, , 10F
原先只會比較數字 參有字元就會停 雖解了錯的很沒道理
03/17 12:28, 10F

03/17 21:43, , 11F
非數字要加引號
03/17 21:43, 11F

03/18 15:40, , 12F
數子也可以加,加引號只是比較安全,讓語法比較保險...
03/18 15:40, 12F

03/19 15:45, , 13F
你的目的如果只是查出message 中與product裡查出來的筆數
03/19 15:45, 13F

03/19 15:46, , 14F
為何不將二個table join後在group by 即可直接帶出了
03/19 15:46, 14F
文章代碼(AID): #17stCsl_ (PHP)