Как вывести категории в тег Select

331
26 ноября 2016, 20:22

Ребят как такой же скрипт поместить в тег SELECT. Этот скрипт у меня выводит категории на сайте. А щяс надо на другой странице поместить его в тег SELECT. Как это можно сделать?

<?php 
$result = mysql_query ("SELECT `id`, `parent_id`, `name` FROM `category`");  
$cats = array(); 
while($cat =  mysql_fetch_assoc($result)) 
$cats[$cat['parent_id']][] =  $cat; 
function create_tree ($cats,$parent_id){ 
if(is_array($cats) and  isset($cats[$parent_id])){ 
$tree = !$parent_id?'':'<ul>'; 
foreach($cats[$parent_id] as $cat){ 
$tree .= "<li>"; 
$img = !$parent_id?'<img src="images/'.$cat['name'].'.png">':''; 
$tree .= !isset($cats[$cat['id']])?"<a href='view_cat.php?cat=".$cat['name']."'>".$img." ".$cat['name']."</a>":"<span>".$img." ".$cat['name']."</span>"; 
$tree .=  create_tree($cats,$cat['id']); 
$tree .= '</li>';          
} 
$tree .= !$parent_id?'':'</ul>'; 
}else return null;           
return !$parent_id?'<ul class="sublist">'.$tree.'</ul>':$tree;         
}  
echo create_tree($cats, 0); 
?>

Вот мой тег select с name,id и сlass

<select name="name" id="name" class="name"> 
<option value="viberite">Выберите</option> 
    <?php 
 
    ?> 
 </select>



чтобы получилось вот так

Answer 1
<?php
/* Сделаем тоже рекурсивно */
function make_tree($from, $id = 0)
{
   $to = array();
   foreach($from as $v)
   {
      if ($v['parent_id'] == $id)
      {
         $tmp = $v;
         $tmp['child_list'] = make_tree($from, $tmp['id']);
         $to[] = $tmp;
      }
   }
   return $to;
}
$result = mysql_query("SELECT `id`, `parent_id`, `name`, 'english' FROM `category`");
$list = array();
while($cat =  mysql_fetch_assoc($result)){
    $list[] = $cat;
}
$cats = make_tree($list);


/* Теперь вывод: */
function show_tree($from, $level = 0)
{
   $indent = str_repeat('+', $level);
   // $indent = str_repeat('&nbsp;', $level);
   foreach($from as $v)
   {
      if ($v['child_list'])
      {
         echo "<optgroup label='" . $indent. $v['name'] . "'></optgroup>";
         show_tree($v['child_list'], $level + 1);
      }
      else
      {
         echo "<option value='" . $v['english'] . "'>" . $indent . $v['name'] . "</option>";
      }
   }
}
echo "<select>";
echo "<option value=''>Выбрать</option>";
show_tree($cats);
echo "</select>";
READ ALSO
Подключение к удаленной базе через workbench

Подключение к удаленной базе через workbench

При попытке подключиться возникает вот такая ошибка:

410
Некорректный старт сервера

Некорректный старт сервера

При старте ubuntu 14 tomcat стартует автоматом но не видит бд и выводит 500 статус на реквесты, как можно это исправить? При рестарте из IDE все работает...

261
Логика приложения

Логика приложения

Имеются сущности: Преподаватели, студенты, курсы

260