ultibil adlı üyeden alıntı: mesajı görüntüle
Yazalım ihtiyacı olan arkadaşlarda faydalanır
Şimdi ilk önce veritabanında gerekli olanları oluşturalım
CREATE TABLE `ustkategoriler` (
`id` int(11) NOT NULL auto_increment,
`kategori_baslik` varchar(300) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5 AUTO_INCREMENT=1 ;

CREATE TABLE `altkategoriler` (
`id` int(11) NOT NULL auto_increment,
`altkat_ustkategori` varchar(300) NOT NULL,
`altkat_baslik` varchar(300) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5 AUTO_INCREMENT=1 ;
Burda veritabanında ustkategoriler ve altkategoriler diye oluşturduk
bu formun ustkategori.php'de olduğunu varsayıyoruz ve ustkategori.php içeriğimizi şu şekilde yapıyoruz.

<form action="ustkategori.php">
<input type="text" name="kategori_baslik">
</form>

<?php
if($_POST){ // post işlemi gelirşe başlatıyoruz
$kategori_baslik = $_POST["kategori_baslik"]; //formdan gelen kategori başlığını aldık
$ekle = mysql_query("INSERT INTO ustkategoriler (kategori_baslik)VALUES('$kategori_baslik')"); //veriyi kaydettik
}
?>
Burdaki kayıt işimiz bitti şimdi altkategori oluşturalım bu dosyamızında altkategori.php olduğunu varsayıyoruz
altkategori.php içeriğimiz şu şekilde olacak

<form action="altkategori.php">
<input type="text" name="altkat_baslik">
<select name="kategori_sec">
<?php
$katal = mysql_query("SELECT * FROM ustkategoriler ORDER BY id DESC limit 0,999"); //üst kategorileri seçmek için üstkategorileri listeliyoruz
while($yaz=mysql_fetch_array($katal)){
$id = $yaz['id'];
$kategori_baslik = $yaz['kategori_baslik'];
echo '<option value="'.$id.'">'.$kategori_baslik.'</option>';
}
?>
</select>
</form>

<?php
if($_POST){
$altkat_baslik = $_POST["altkat_baslik"];
$altkat_ustkategori = $_POST["kategori_sec"];
$ekle = mysql_query("INSERT INTO altkategoriler (altkat_baslik,altkat_ustkategori)VALUES('$altkat_baslik','$altkat_ustkategori')"); //veriyi kaydettik
}

?>
Bu şekilde dilediğin kadar altkategoriyi eklemek istediğin üst kategoriyi seçerek sınırsız altkategori ekleyebilirsin.
Tabi burda sql injection açığı var kendi güvenli get ve post fonksiyonun vardır diye düşünüyorum yok ise

function p ($post) {
return htmlspecialchars(mysql_real_escape_string($_POST[$post]));
}
$cekilecekdeger = p("cekilecekdeger");
bu şekilde güvenli olarak alabilirsin post fonksiyonlarınıda iyi bayramlar dilerim
pdo kullanmanın daha güvenli olacağını düşünüyorum.