Sto per dare 100 punti di taglie per risposta a questa domandaottenere tutti gli elementi di categoria e del suo bambino
Così ho molto difficile domanda su ricorsioni - come ottenere tutte le voci contano di categoria e tutti i childs che contiene quel genitore e più profondo fino alla fine?
Ho tavolo:
+----+---------------+-----------------+
| id | category name | category_parent |
+----+---------------+-----------------+
| 1 | cars | 0 |
+----+---------------+-----------------+
| 2 | real estate | 0 |
+----+---------------+-----------------+
| 3 | clothes | 0 |
+----+---------------+-----------------+
| 4 | bmw | 1 |
+----+---------------+-----------------+
| 5 | audi | 1 |
+----+---------------+-----------------+
| 6 | 100 | 5 |
+----+---------------+-----------------+
| 7 | 80 | 5 |
+----+---------------+-----------------+
| 8 | A4 | 5 |
+----+---------------+-----------------+
| 9 | QUATRO | 8 |
+----+---------------+-----------------+
| 10 | TDI | 8 |
+----+---------------+-----------------+
| 11 | Black | 9 |
+----+---------------+-----------------+
| 12 | White | 9 |
+----+---------------+-----------------+
| 13 | 2 doors | 11 |
+----+---------------+-----------------+
| 14 | 5 doors | 11 |
+----+---------------+-----------------+
ed i miei prodotti tabella simile a questa:
+----+---------------+-----------------+
| id | category_id | name |
+----+---------------+-----------------+
e, per esempio io voglio contare tutti gli elementi che si trovano in cars
categoria. Quindi in pratica dovrei passare questa categoria id (1)
e in qualche modo fare una ricorsione per contare tutti gli oggetti. Ma non ho idea di come affrontarlo, perché i bambini di quella categoria potrebbero essere illimitati.
Così, quando voglio conoscere tutti gli elementi di quel conte genitore, dovrei fare qualcosa di simile:
1++:
4++
5++:
6++
7++
8++:
9++:
11++:
13++
14++
12++
10++
Spero che capirete quello che mi serve e mi darà qualsiasi suggerimento che mi potrebbe aiutare.
inoltre, questo è l'inizio che ho fatto fino ad ora - potrei implementarlo ma in futuro resterò bloccato in ricorsione ... quindi non vale niente.
public function get_category_tree_id_list($cat_id, $list_array = FALSE)
{
if (!$list_array){
$items = $this->system->_getCustomTableData('categories', array(array('category_parent' => $cat_id)), 'id DESC');
$this->__tmp['id_list'] = [];
foreach ($items as $key => $value) {
$this->__tmp['id_list'][] = $value['id'];
}
}
}
http://stackoverflow.com/questions/5905236/parent-child-relationships-php-mysql – Stoleg