ben de pdo ile hazırlanmış halini paylaşayım

CREATE TABLE IF NOT EXISTS `categories` (
  `category_id` int(11) NOT NULL AUTO_INCREMENT,
  `category_name` text CHARACTER SET utf8 COLLATE utf8_turkish_ci NOT NULL,
  `category_description` text CHARACTER SET utf8 COLLATE utf8_turkish_ci NOT NULL,
  `category_img` text CHARACTER SET utf8 COLLATE utf8_turkish_ci NOT NULL,
  `category_alt` int(11) NOT NULL,
  PRIMARY KEY (`category_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

-- 
-- Tablo döküm verisi `categories` 
-- 

INSERT INTO `category` (`category_id`, `category_name`, `category_description`, `category_img`, `category_alt`) VALUES 
(1, 'Hayvanlar Alemi', 'Hayvanlar kategorisi Açıklaması', 'cat-2213.jpg', '0'), 
(2, 'İnsanlar Alemi', 'İnsanlar kategorisi Açıklaması', 'cat-2214.jpg', '0'), 
(3, 'Ak gezenler Alemi', 'Ak gezenler kategorisi Açıklaması', 'cat-2215.jpg', '0'), 
(4, 'Kedigiller', 'Kedigiller kategorisi Açıklaması', 'cat-2215.jpg', '1');
            <?php 
              include_once('config.php'); // bağlantı dosyası
              $query = $db->query("SELECT * FROM categories WHERE category_alt LIKE '0'", PDO::FETCH_ASSOC);
              if ( $query->rowCount() ){
                foreach( $query as $row ){
                  ?>
                  <optgroup label="- <?php echo $row['category_name']; ?>">
                    <?php 
                      $query = $db->query("SELECT * FROM categories WHERE category_alt LIKE '$row[category_id]'", PDO::FETCH_ASSOC);
                      if ( $query->rowCount() ){
                           foreach( $query as $row ){
                                echo '<option value="'.$row['category_id'].'">- '.$row['category_name'].'</option>';
                           }
                      }
                    ?>
                  </optgroup>
                <?php 
              }
            }
          ?>
tek sql sorgusu değil düzenleyeceğim