while 的變數傳出去不一樣?

來源:互聯網
上載者:User
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;

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.