<?php try { $sql = 'SELECT * FROM '.CATEGORY_TABLE.' ORDER BY idCategory ASC'; $res = $mysqli -> query($sql); while ( $row = $res -> fetch_assoc() ) { if ( $row['parentCategory'] == 0 ) { $parent[] = $row; } else { { $t[$row['parentCategory']][] = $row; } else { $t[$row['parentCategory']][0] = $row; } } } function show( $arr, $parentCategoryName, $i = 1) { foreach( $arr as $parent => $val ) { if( $t[ $val['idCategory'] ] ) { //echo '<li><a href="'.$parentCategoryName.'/'.pl2iso($val['nameCategory']).'/">'.$val['nameCategory'].'</a></li>'; echo '<li><a href="?parentCategory='.$val['parentCategory'].'&idCategory='.$val['idCategory'] .'">'.$val['nameCategory'].'</a></li>'; $parentCategoryName = pl2iso($val['nameCategory']); show( $t[ $val['idCategory'] ], $parentCategoryName, ++$i ); } else { //echo '<li><a href="'.$parentCategoryName.'/'.pl2iso($val['nameCategory']) .'/">'.$val['nameCategory'].'</a></li>'; echo '<li><a href="?parentCategory='.$val['parentCategory'].'&idCategory='.$val['idCategory'] .'">'.$val['nameCategory'].'</a></li>'; } } } foreach( $parent as $val ) { //echo '<li><a href="'.pl2iso($val['nameCategory']).'/">'.$val['nameCategory'].'</a></li>'; $parentCategoryName = pl2iso($val['nameCategory']); if( $val['idCategory'] == $_GET['idCategory'] || $val['idCategory'] == $_GET['parentCategory']) { { show( $t[ $val['idCategory'] ], $parentCategoryName ); } } } } catch (e $error) { } ?>
i mam problem ze stworzeniem linka np do 3 poziomu i dalszego. jak tego dokonac? (za pomoca id, za pomoca nazw dla mode_rewrite)
pl2iso to funkcja zamieniajaca litery poslkie,
dla linku dla 2-go poziomu nazwe przekazuje tak: $parentCategoryName = pl2iso($val['nameCategory']);
baza wyglada tak:
idCategory int(10)
parentCategory int(10)
nameCategory varchar(128)