情報を削除する場合、その情報の下にあるものをすべて削除する必要がある場合があります。この場合は、再帰的に削除する必要があります。以下は、部門管理で部門の削除機能を実行するときに、部門とそのすべてのサブ部門を再帰的に削除するために作成したコードです。ご参考までに、また将来の参考のために。
以下は私のコードの一部の表示です:
コードをコピーします コードは次のとおりです:
/*
* 部門情報を変更します
*/
function del($bumen_id) {
$sql="select bumen_id from lxsm_bumen where topbumen_id=".$bumen_id; //topbumen_id を $bumen_id としてクエリします
$delsql="delete from lxsm_bumen where bumen_id=".$bumen_id; // 部門情報を削除します$bumen_id としての bumen_id
$xiaji_id =$this->DB->fetch_assoc($sql){
if($xiaji_id){
foreach($xiaji_id as $id){
$res=$this->del ($id[bumen_id]) ;
}
}
$result=$this->DB->query($delsql);
if($result){
return true
}
else{
return false ;
}
}
注: ここでの topbumen_id は、部門情報の上位部門の ID 番号です。 fetch_assoc() 関数は、クエリによって取得されたすべての内容を配列に返す独自のカプセル化関数です。
経験: 再帰アルゴリズムを書くのは初めてで、まだ非常に未熟ですが、機能は実現されています。再帰的なコードを書くときは、まずツリー構造を描いて、その構造を認識した後、得たい効果に応じて段階的に実行することを頭の中でシミュレーションする必要があると感じています。たとえば、部門を削除したい場合は、自分を削除し、自分を上位部門として下位部門を見つけて、その下位部門を 1 つずつたどる必要があります。このとき、下位部門の操作は行われます。削除と同様に、その下位部門の操作と同様の操作が繰り返されます。部門は同じ手順を実行するため、この関数自体をサブ部門の走査で使用します。これにより再帰的アルゴリズムが形成されます。
http://www.bkjia.com/PHPjc/743577.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/743577.html技術記事情報を削除する場合、その情報の下にあるものをすべて削除する必要がある場合があります。この場合は、再帰的に削除する必要があります。以下は、部門管理で部門削除機能を実行しているときです...