«

»

Eki
17

PHP ile kategoriler oluşturmak    

Merhabalar bu konumuzda php ile kategoriler oluşturarak bu kategorilere bağlı alt kategoriler oluşturacağız.
Bu konumuza başlamadan önce ilk olarak gerekli veritabanı tablolarımızı oluşturalım. veritabanımızda üç adet tablomuz olacak bunlar;

NOT: Bu makalemizde vberitabanına nasıl veri eklenir onu göstermeyeceğim isteyenler buradan MYSQL’e veri ekleme konusuna bakabilirler.

  1. Kategoriler => id, baslik
  2. alt_kategori =>id, ust_kat_id, baslik
  3. mesaj => id, ust_kat, baslik, mesaj  bu verdiğimiz bilgiler doğrultusunda tablomuzu oluşturalım
mysql.sql   
create table kategoriler
(
id int(3) auto_increment primary key not null,
baslik varchar(20) not null
);
 
create table al_kategori
(
id int(3) auto_increment primary key not null,
ust_kat_id int(3) not null,
baslik varchar(20) not null
);
 
create table mesaj
(
id int(3) auto_increment primary key not null,
ust_kat_id int(3) not null,
baslik varhcar(20) not null,
mesaj text not null
);
 
insert into kategoriler values('1', 'Haberler');
insert into kategoriler values('2', 'Mizah');
 
insert into al_kategori values('1', '1', 'Spor');
insert into al_kategori values('2', '1', 'Gündem');
insert into al_kategori values('3', '2', 'Komik Yazılar');
insert into al_kategori values('4', '2', 'Fıkralar');
insert into al_kategori values('5', '2', 'Resimler');
 
insert into mesaj values('1', '1', 'Spor', 'Burası spor haberleri');
insert into mesaj values('2', '1', 'voleybol', 'Voleybol');
insert into mesaj values('3', '2', 'Gündem', 'Gündem Habeleri içeriğidir');
insert into mesaj values('4', '3', 'Komik yazılar', 'Bu bir komik yazıdır:)');
insert into mesaj values('5', '4', 'Fıkralar', 'Burası fıkralar içeriği');

 

Yukardaki tablomuzu MYSQL veritabanınıza girerek import edin ve tablomuzu oluşturun.Şimdi gelelim bu tablomuzdan gerekli bilgileri almaya. Burada sadece kategoriler ağacını göstereceğim mesajlar bölümünde ona göre diğer bölümleri de sizler geliştirebilirsiniz.

ilk olarak ikinci bölüm kategorilerinin listelenmesini yapalım (bu kısımda mysql bağlantı oluşturmayı anlatmayacağım. Bilmeyenler için MYSQL veritabanı bağlantısına buradan bakabilirsiniz.)

Evet şimdi gelelim kodlarımıza;

<?php
 
mysql_select_db("kategoriler", mysql_connect("localhost", "kullanici_Adi", "şifre"));
 
//veritabanımızdan alt_kategoriler tablomuzdaki verileri seçelim
//ve bu verileri tablo şeklinde erana yazdıralım
//tabi bu bölümü listelerken örnek olrak ana sayfadan mizah kategori başlığına tıklanmış olsun ve
//mizah bölümündeki alt_kategorileri listelesin kodumuz
//tabikide mizah bölümüne tıkladığını sayfanın urlsinden alabilrisiz.
//urlmiz http://localhost/index.php?kat=2 olsun
 
$kategori=$_GET['kat'];//get yöndetimi ile ilgili kategori numaramızı aldık
 
$alt_kat_sec=mysql_query("select * from alt_kategoriler where ust_kat_idi='$kategori'");
//verimizi bu şekilde seçtikten sonra
//ekrana yazdıralım
echo '<table border="0" width="100%">';
while($yaz=mysql_fetch_array($alt_kat_sec))
{
	echo '
	<tr>
	    <td><a href="mesaj.php?a_kat='.$yaz['id'].'">'.$yaz['baslik'].'</a></td>
	</tr>
	;
}
echo '</table>';
?>

 

<td><a href=”mesaj.php?a_kat=’.$yaz['id'].’”>’.$yaz['baslik'].’</a></td> Bu kod ile alt kategorilerimizi ekrana yazdırdık. Buradaki başlıklarımıza da bir link verdik ve bu link ile mesaj.php sayfasına gönderdik (“a_kat=” ilede mesaj sayfasında ikien hangialt kategoriye ait  mesajların listeleneceğini belirttik hangi linke tıkanırsa o linke ait kalt kategorinin id si ile sayfayı yükleyecek.)

Yukardaki sayfayı kat.php olarak kayıt edip yereln sunucunuzdan “http://localhost/kat.php?kat=1″ ile ulaşırsanız 1 id numarasına sahip kategorideki başlıkları listeleyecektir. 1 yerine siz listelemek istediğiniz kategorinin id sini belirtirseniz o id’ye sahip kategorileri listeleyecektir.

Şimdi sıra geldi mesaj sayfasının gösterimine. Biz daha önce kat.php sayfasından hangi başlığa tıklandığını linke verdiğimiz değer ile mesaj.php sayfasına yönlendirdik. Şimdi sıra geldi mesaj.php sayfasını yapmaya. kodlarımız aşağıdaki gibi olacak. Bu sayfa için de en üste bir tane ziyaretçiye görüntülediği içeriğin hangi kategorilerin alt konusu laduğunu gösterelim.

mesaj.php   
<?php
 
//get ile gelinen alt kategori id'sini alalım
$alt_kat=$_GET['a_kat'];
 
//sayfalrı listelemedin önce kategorinin hiyerarşik sıralaması yapalım
//bunun için alt_kategoielerdeki bilgleri alalım ilk önce
$alt_kategori_sec=mysql_query("select * from alt_kategori where id='".$alt_kat."'");
//bu bilgi ile hangi kategorinin içerisinde olduğmuz seçtik
$alt_kat_yaz=mysql_fetch_array($alt_kategori_sec);
//bu tanımlama hangi kategoride olduğumuzu başlık bilgilsin alacağız
 
//şimdi bu ketegorinin ait olduğu ust kategoriyi bulalım
$ust_kat=mysql_query("select * from kategoriler where id='".$alt_kat_yaz['ust_kat_id']."'");
 
$ust_kat_yaz=mysql_fetch_array($ust_kat);
 
//veritabanından altığımız bu bilgiler ile
//içeriğimiz ait hiyerarşik sırayı yadıralım
 
echo $ust_kat_yaz['baslik']."»»»»".$alt_kat_yaz['baslik'];
//şimdi bu kategoriye ait mesajarı listeleyelim
$sec=mysql_query("select * from mesaj where ust_kat_id='".$alt_kat."'");
//mesajları seçtik ve bunları ekrana yazdıracağız
echo '<table border="0" width="100%">';
while($yaz=mysql_fetch_array($sec))
{
	echo '
	<tr>
	    <td><a href="icerik.php?mesaj_no='.$yaz['id'].'">'.$yaz['baslik'].'</a>
	    </td>
	</tr>
	';
}
 
echo '</table>';
 
?>

 

Bu kodumuzda mesaj.php olarka kayıt edip. Yerel sunucunuzdan “http://localhost/mesaj.php?a_kat=1″ yazarsanız 1 numaralı kategoriye ait mesaj başlıklarını görüntülersiniz. Bu başlığada tıklandığı zaman kullanıcı icerik.php sayfasına yönlenir (Yine Linkteki mesaj _no ile görüntülenmek istenen mesaj numarasını alır.)

İnşallah Faydalı bir kaynak olmuştur.

Konu hakkındaki sorularınızı yorum yazarak sarabilirsiniz.

 

Tüm dijital fotoğraf makinesi fırsatları için tıklayın !

1 yorum

Henüz ping yok

  1. Hasan diyor ki:

    Bir demo da ekleseydiniz örnek olurdu. Çok güzel bir çalışma. Teşekkür ederim.

Bir Cevap Yazın

E-Posta adresiniz yayınlanmayacaktır.

Bu HTML etiket ve tanımlayıcılarını kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


Kapat  |  Göster

Tüm masaüstü bilgisayar fırsatları için tıklayın !