webmaster
 
›
Cevapla
05-11-2009 21:00:37
MERCAN
 

Php ile Kategorileme

MySQL de kategorileme adında bir veritabanı yaratın ve bu sorguyu çalıştırın.




Kod Çizelgesi Kod Dili: php
CREATE TABLE `kategoriler` (
`kat_id` int(11) NOT NULL auto_increment,
`kat_baslik` varchar(50) NOT NULL default '',
PRIMARY KEY (`kat_id`)
) ENGINE=MyISAM;


INSERT INTO `kategoriler` VALUES (1, 'PHP');
INSERT INTO `kategoriler` VALUES (2, 'ASP');
INSERT INTO `kategoriler` VALUES (3, 'HTML');

CREATE TABLE `makaleler` (
`makale_id` int(11) NOT NULL auto_increment,
`makale_baslik` varchar(150) NOT NULL default '',
`kat_id` varchar(150) NOT NULL default '',
`makale_metni` text NOT NULL,
PRIMARY KEY (`makale_id`)
) ENGINE=MyISAM;

INSERT INTO `makaleler` VALUES (1, 'PHP de fonksiyonlar', '1', 'PHP de fonksiyonlar makalesi');
INSERT INTO `makaleler` VALUES (2, 'ASP de server nesneleri', '2', 'ASP de server nesneleri makalesi');
INSERT INTO `makaleler` VALUES (3, 'HTML de link vermek', '3', 'HTML de link vermek makalesi');




Şimdi sorgumuzda ne yaptık onu bir anlatalım.Öncelikle kategoriler adında bir tablo ve kat_id ( kategorinin id numarası ) , kat_baslik ( kategorinin adı ) adında iki field (alan) oluşturduk.Sonra örnek olması açısından 3 tane kategori ekledim.(PHP,ASP,HTML)

Diğeri ise makaleler tablomuz.Bu tabloda ise makale_id ( makalenin id numarası), makale_baslik ( makalenin adı ), kat_id ( makalenin olduğu kategori id numarasının tutulacağı alan ), makale_metni ( makalenin metni ).Ve yine örnek olarak 3 ayrı kategoriye 3 tane makale ekledim.

Kodlarımızı yazmaya başlayalım.Bir veritabanı bağlantısı oluşturalım.

Ayarlar.php olarak kaydedin.



Kod Çizelgesi Kod Dili: php
<?php
db_baglanti
()
{
$db_host = "localhost";
$db_kullanici = "root"; // Db kullanıcı adınız
$db_sifre = ""; // Db şifreniz
$db_adi = "kategorileme"; // Db adınız

@$baglanti = mysql_connect($db_host,$db_kullanici,$db_sifre);
@
mysql_select_db($db_adi,$baglanti);
if (
mysql_errno())
{
echo
'Veritabanına bağlanılamıyor ...';
exit;
}
}
?>




Ayarlar.php de bir db bağlantısı fonksiyonu oluşturduk.(Bunu kullanacağımız sayfalarda kolaylık olması açısından yaptık.)
Db bağlantımızı oluşturduğumuza göre şimdi kategorilerimizi ekrana yazdıralım.

Kategoriler.php olarak kaydedin.Gerekli açıklamaları kod içinde belirttim.




Kod Çizelgesi Kod Dili: php
// Db bağlantımızın olduğu ayarlar.php yi çağırıyoruz.
include("ayarlar.php");

// Bağlantıyı oluştur.
db_baglanti();

// kat_id, kat_baslik alanlarını kategoriler tablosundan seç ve kat_id e göre diz.
$sorgu = mysql_query("SELECT kat_id, kat_baslik FROM kategoriler ORDER BY kat_id");

// mysql_fetch_array ile verileri bir dizi olarak alıyoruz.
while($yaz = mysql_fetch_array($sorgu))
{
echo ". $yaz['kat_id'] . "&kategori=" . $yaz['kat_baslik'] .">" . $yaz['kat_baslik'] . "
";
}
?>




Veritabanında olan kategorileri listeledik.Bu sayfanın çıktısı şu şekilde olmalıdır.

Şimdi ise bir kategoriye girdiğimizde makalelerin başlıklarını yazdıralım.
Katgoster.php olarak kaydedin.Gerekli açıklamalar kod içinde.




Kod Çizelgesi Kod Dili: php
// Db bağlantımızın olduğu ayarlar.php yi çağırıyoruz.
include("ayarlar.php");

// URL den kategorinin id numarasını alıyoruz.
@$kat_id = $_GET['kat_id'];

// Bağlantıyı oluştur.
db_baglanti();

/* makale_id ve makale_baslik alanlarını makaleler tablosundan seç ve url üzerinden gelen kat_id i tabloda olan kat_id e eşitle.Bu da bize hangi kategori ise bize o kategorinin makalelerini listeliyor.
*/
$sorgu = mysql_query("SELECT makale_id, makale_baslik FROM makaleler WHERE kat_id = '" . $kat_id . "' ORDER BY makale_id");

// mysql_fetch_array ile verileri bir dizi olarak alıyoruz.
while($yaz = mysql_fetch_array($sorgu))
{
echo '. $yaz['makale_id'] .'"> '.$yaz['makale_baslik'] .'
';
}
?>



Bu sayfanın çıktısı şu şekilde olmalıdır.Burda PHP kategorisine girdiysek PHP kategorisindeki makalelerin başlıklarını yazdıracağız.( Örnek: PHP de fonksiyonlar.) O zaman çıktı şu şekilde olacaktır.
Ve son olarak da makaleoku.php sayfamız;



// Db bağlantımızın olduğu ayarlar.php yi çağırıyoruz.
include("ayarlar.php");

// URL den makalenin id numarasını alıyoruz.
@$makale_id = $_GET['makale_id'];

// Bağlantıyı oluştur.
db_baglanti();

/* makale_id, makale_baslik, makale_metni alanlarını makaleler tablosundan seç.Ve url üzerinden gelen makale_id i tabloda olan makale_id e eşitle.Bu da bize hangi makaleden geldiysek bize onun makale_metinini göstermemizi sağlar. */

Kod Çizelgesi Kod Dili: php
$sorgu = mysql_query("SELECT makale_id, makale_baslik, makale_metni FROM makaleler WHERE makale_id = '" . $makale_id . "'");

// mysql_fetch_array ile verileri bir dizi olarak alıyoruz.
while($yaz = mysql_fetch_array($sorgu))
{
echo $yaz['makale_metni'];
}
?>




Bu sayfanın çıktısı ise PHP de fonksiyonlar makalesinin metini yani ;

Bir önceki yazı php Klasördeki resimleri gösterme ve sayfalama hakkında bilgi vermektedir.

Cevapla

"Php ile Kategorileme" konusu hakkında etiketler
adi agac ekleme hangi ile insert kategori kategoride kategorileme kategorili link makale mantigi mysql not null ornegi ornekleri php urun verme

php Klasördeki resimleri gösterme ve sayfalama Önceki | Sonraki mysql-php yardım




İletişim Bilgileri, Contact Us, Kullanım Sözleşmesi, Gizlilik