私は、3列のテーブル:id
,ref
およびcatName
を持っています。すべての行には、サブカテゴリとなるカテゴリが含まれています。そのような場合は、メインカテゴリのIDへのカラム参照がref
よりも大きくなります。もちろん、この方法では多数のサブカテゴリを作成できます。条件が満たされるまでPHPメソッドを実行します。
今、すべての親のうちcatName
を含むすべてのカテゴリにURLを作成します。
private function getCatUrl($cat, $ur = array()){
$sql = "SELECT * FROM shop_cat WHERE id = :id LIMIT 1";
$st = $this->db->prepare($sql);
$st->bindParam('id', $cat, PDO::PARAM_INT);
$st->execute();
$rij = $st->Fetch();
$ur[] = urlencode($rij['naam']);
if($rij['ref'] == 0){
//Done, I've reached the top parent;
return implode('/',$ur);
}else{
//there is a parent/reference above this level
//getting there
$this->getCatUrl($rij['ref'], $ur);
}
}
何とかこれは、トップの親に対して$ urを生成するだけで、子のためには生成しません。 私は何が間違っていますか?データベースの
サンプル:
id ref catName
1 0 GroundFloor
4 1 Portal
5 1 Stairs
2 0 FirstFloor
6 2 DiningArea
12 6 Chair
7 2 Toilet
9 2 SittingRoom
10 9 Couch
11 9 Dresser
3 0 Roof
8 3 LoungeChair
DBからのデータの例を含めることができますか?そして、あなたがこの関数をどのように呼び出すかの例(つまり、どのようなparams) – ManseUK