Mysql
 sql >> база данни >  >> RDS >> Mysql

По-ефективна йерархична система

Предполагам, че нещо в този смисъл трябва да направи (нетествано, трябва да бъде адаптирано към вашите нужди):

$q = mysql_query("SELECT id, parent_id, name FROM categories");
while ($r = mysql_fetch_row($q)) {
  $names[$r[0]] = $r[2];
  $children[$r[0]][] = $r[1];
}

function render_select($root=0, $level=-1) {
  global $names, $children;
  if ($root != 0)
    echo '<option>' . strrep(' ', $level) . $names[$root] . '</option>';
  foreach ($children[$root] as $child)
    render_select($child, $level+1);
}

echo '<select>';
render_select();
echo '</select>';

още по-забавен начин да направите това е да използвате SQL съхранени процедури, но в този случай може да е доста пресилено...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Редът на именувани параметри има смисъл за MySql .Net доставчик на данни?

  2. Проблеми с Mysql драйвери

  3. Как да свържа mysql база данни и да вмъкна данни в нея с помощта на код за Android

  4. Преименувайте таблицата с интервали mysql

  5. PHP PDO Синтактична грешка или нарушение на достъпа:1064 при вмъкване