- if (!$all) $sql .= " WHERE !inactive";
- $sql .= " ORDER BY class_id, id";
+ $where = array();
+
+ if (!$all)
+ $where[] = "!inactive";
+
+ if ($class_id != false)
+ $where[] = "class_id=".db_escape($class_id);
+
+ if ($parent == -1)
+ $where[] ="(parent = '' OR parent = '-1')";
+ elseif ($parent !== false)
+ $where[] = "parent=".db_escape($parent);
+
+ if (count($where))
+ $sql .= ' WHERE '.implode(' AND ', $where);
+ $sql .= " ORDER BY class_id, id, parent";