ホームページ  >  記事  >  バックエンド開発  >  ああ、兄弟、私は再発でとても落ち込んでいます、助けてください。

ああ、兄弟、私は再発でとても落ち込んでいます、助けてください。

WBOY
WBOYオリジナル
2016-06-13 12:17:29879ブラウズ

緊急に助けてください。助けてください。

まず第一に、私の [列] テーブル構造は次のとおりです
id uid titile class
1 0 ホームページの URL
2 0 News news
3 0 Product url
4 3 Technology product product
5 4 Computer product

今の問題は、無限のドロップダウンボックスを作りたいことです

再帰メソッドを使用すると、where uid = 0 を実装してループを開始し、次に get_str($row['id']); recursion


しかし、問題があります。列にはクラスがあります フィールドは列のタイプを表します... URL は外部リンクを表し、ニュースはニュースを表し、製品は製品列を表します

第 1 レベルの製品は、外部リンク タイプの最初です。下位列は製品タイプです
私はバックグラウンドで作業しています 製品を公開するとき、アトリビューション列を選択するとき... class=prodcut とそのすべての下位のみを表示する必要があります
次に、再帰的メソッドを使用して追加しますSQL 条件文 where class='product'

この場合、再帰する方法はありません...この条件が再帰的でない場合、「テクノロジー製品」コンピュータ
インターネットで探しました 再帰コードはすべて 0 から始まる UID を持っています... この条件を class='product' に追加すると、テクノロジ製品の UID は 3 または他の数字 (56789 や 0 など) になります。 .

このように再帰する方法はありません...何も直接表示されません...何か良い方法はありますか?

-- -- --解決策のアイデア----------------------

function foo($uid=0, $ext='') {<br />  $sql = "select * from tbl_name where uid=$uid" . ($uid && $ext ? " and class='$ext'" : '');<br />  $rs = mysql_query($sql);<br />  while($row = mysql_fetch_assoc($rs)) {<br />    foo($row['id'], $ext);<br />  } <br />}

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。