function type_son_id_finder($type_id){ $query=mysql_query("SELECT id FROM `protduct_type` WHERE `f_id` = '$type_id'"); while ($row=mysql_fetch_assoc($query)) { return $all_son = $row["id"].","; }}
這個方法是輸入一個父欄目ID 就尋找到有什麼子欄目ID
以上的方法
應該是輸出
1,2,
但只能輸出
1,
但如果把
return $all_son = $row["id"].",";
改為:
echo $all_son = $row["id"].",";
就能正常的顯示出1,2,
這是為什麼?
我如何解決?
我是想把這個方法最終輸出成
1,2
讓我在mysql中 WHERE id IN (1,2)
但現在只能輸出第一個,還不能用return, 只能用echo?
求解!
回複討論(解決方案)
建議先學習下基礎知識吧
function type_son_id_finder($type_id){
$query=mysql_query("SELECT id FROM `protduct_type` WHERE `f_id` = '$type_id'");
$all_son = '';
while ($row=mysql_fetch_assoc($query)) {
$all_son .= $row["id"].",";
}
return $all_son;
}
return放在迴圈裡面 就會跳出當前迴圈 所以只執行一遍迴圈就結束了 因此只能得到一個結果1
正確結果可以參考#2 return放在迴圈之後
function type_son_id_finder($type_id){
$query=mysql_query("SELECT id FROM `protduct_type` WHERE `f_id` = '$type_id'");
$all_son = '';
while ($row=mysql_fetch_assoc($query)) {
$all_son .= $row["id"].",";
}
return $all_son;
}
非常感謝 明白 一時間沒想到 沒轉回來
return $all_son = $row["id"].",";
???每次都?覆?$all_son 所以只?返回最後一???的值,
改成 $all_son . = $row["id"].",";
在循??束?再 return $all_son;