Помогите, пожалуйста, написать скрипт! есть бд, содержащая 3 столбца: id, id_parent, name (1, 0, 'Телевизоры'), (2, 0, 'Мультимедиа'), (3, 1, 'ЖК телевизоры'), (4, 1, 'Плазменные телевизоры'), (5, 3, 'Диагональю до 45 дюймов'), (6, 3, 'Диагональю более 40 дюймов'), (7, 4, 'Диагональю до 45 дюймов'), (8, 4, 'Диагональю более 40 дюймов'), (9, 2, 'DVD-плееры'), (10, 2, 'Blu-Ray плееры'); Нужно вывести сначала имена первого уровня как ссылки и рядом количество детей. При нажатии на них, с помощью метода гет нужно получать айди и выводить детей.
Вот что-то написал:
<?php
$cats = [];
$mysqli = new mysqli("localhost", "root", "root", "beboss");
$mysqli->query("SET NAMES 'utf8'");
$result=mysqli_query($mysqli, "SELECT * FROM groups");
mysqli_close($mysqli);
while ($cat = mysqli_fetch_assoc($result)) {
$cats[] = $cat;
}
function arrOfId($get_id, $cats,$fire = false){
static $ids = [];
static $idsParent = [];
if($fire)
{$ids = []; $idsParent = [];}
foreach ($cats as $key => $value) {
if($value['id'] == $get_id){
$ids[] = $value['id'];
$idsParent[] = $value['id_parent'];
if($value['id_parent'] > 0){
$id = arrOfId($value['id_parent'],$cats);
}
}
}
return [$ids, $idsParent];
}
function getId($cats){
$childIds = [];
$id = $_GET['id'];
foreach ($cats as $key => $value) {
if($value['id_parent']==$id) array_push($childIds, $value['id']);
}
$max_id = $childIds[0];
for($i = 0; $i < count($childIds); $i++)
if($max_id<$childIds[$i]) $max_id = $childIds[$i];
return $max_id;
}
$get_id = getId($cats);
[$ids, $idsParent] = arrOfId(@$get_id,$cats,true);
$ids = array_reverse($ids);
$idsParent = array_reverse($idsParent);
$padding = 0;
$test = -1;
for($i = 0; $i<count($ids); $i++){
foreach ($cats as $key => $value){
if($value['id_parent']==$idsParent[$i]){
if($test!=$value['id_parent'])
{$padding+=20;$test=$value['id_parent'];}
echo '<div style="padding-left:'.$padding.'px"><a href=first.php?id='.$value['id'].'>'.$value['name'].'</a></div>';
}
}
}
?>
Продвижение своими сайтами как стратегия роста и независимости