Free PHP Hostings – Bedava PHP Hostingler -MYSQL-PHP

Free PHP Hostings – Bedava PHP Hostingler – MYSQL Destekli Hostingler – PHP Destekli Hostingler – Bedava PHP Alan

Php ile Kategorileme

Yazan: freephphosting Nisan 24, 2008

MySQL de kategorileme adında bir veritabanı yaratın ve bu sorguyu çalıştırın.
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.

******** 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.

// 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.

// 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. */
$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 ;

ALINTIDIR

Yorum Yapın

XHTML: Bu etiketleri kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>