Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Sistem hierarki yang lebih efisien

Saya kira sesuatu seperti ini harus dilakukan (belum diuji, harus disesuaikan dengan kebutuhan Anda):

$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>';

cara yang lebih funky untuk melakukan ini adalah dengan menggunakan prosedur tersimpan SQL, tetapi mungkin terlalu berlebihan dalam kasus ini...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PDO fetchSemua pasangan nilai kunci grup ke dalam array assoc

  2. MySQL LOAD DATA INFILE menyimpan nomor baris

  3. Karakter Non Latin &aduh

  4. Hubungkan ke wadah Docker MySQL dari localhost?

  5. PostgreSQL vs. MySQL:Mana yang Terbaik?