kategori

0
Onaylı Üye
Üye
Katılım
29 Mart 2005
Mesajlar
2,025
Tepki puanı
1
Konum
ankara
merhaba arkadaşlar,

php'de kategori olayını öğrenmek istiyorum. yardımcı olabilecek arkadaş var mı:)
 
0
Onaylı Üye
Üye
Katılım
31 Ekim 2005
Mesajlar
0
Tepki puanı
3
bak şimdi 2 tablo olacak tamam mı biri normal işte neyse onun tablosu 2. side kategoriler

1. tabloda bir kategori sutunu olacak mesela oraya 1 yazarsan kategori tablosundan id si 1 olan tabloyu çekicen ok?
 
0
Onaylı Üye
Üye
Katılım
29 Mart 2005
Mesajlar
2,025
Tepki puanı
1
Konum
ankara
merhaba,

Tyranid aşağıdaki sql i oluşturdum. Kategori olayını burda nasıl yapabiliriz. Küçük bir örnekle gösterebilirmisin.
PHP:
CREATE TABLE `kategoriler` (
  `id` int(255) unsigned NOT lisanssız auto_increment,
  `kategori` varchar(255) character set utf8 collate utf8_turkish_ci NOT lisanssız,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=6 ;

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

INSERT INTO `kategoriler` VALUES (1, 'programlar');
INSERT INTO `kategoriler` VALUES (2, 'oyunlar');
INSERT INTO `kategoriler` VALUES (3, 'filmler');
INSERT INTO `kategoriler` VALUES (4, 'deneme2');
INSERT INTO `kategoriler` VALUES (5, 'deneme');

-- --------------------------------------------------------

-- 
-- Tablo yapısı : `program`
-- 

CREATE TABLE `program` (
  `id` int(10) unsigned NOT lisanssız auto_increment,
  `ad` varchar(255) character set utf8 collate utf8_turkish_ci NOT lisanssız,
  `aciklama` text character set utf8 collate utf8_turkish_ci NOT lisanssız,
  `tarih` varchar(255) character set utf8 collate utf8_turkish_ci NOT lisanssız,
  `katid` int(255) NOT lisanssız,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=2 ;

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

INSERT INTO `program` VALUES (1, 'onur', 'deneme', '14-09', 1);
 
0
Onaylı Üye
Üye
Katılım
3 Aralık 2004
Mesajlar
0
Tepki puanı
0
Ana sayfada kategorileri sıralayacağın kod
PHP:
<?
$kayitlar = mysql_query("select * from kategoriler"); 
while($kayit = mysql_fetch_array($kayitlar)) {
echo"<a href=kategoriler.php?id=".$kayit['id'].">".$kayit['kategori']."</a><br>";
}
?>

kategoriler.php dosyasının içinde kategorilere ait dosyaları sıralayacağın kod

PHP:
<?
include("db.php"); // db ye baglanti icin olan php dosyasinin ismi veya safya basina manuel yaz
$id=$_GET['id']; //adres cubugundan id değişkeninin alınması
$sayfa= $_GET["sayfa"]; // adres cubugundan sayfa degiskeninin alinmasi
if(!$sayfa) $sayfa= 1 ; // sayfa degiskenimiz yoksa  ilk sayfadayiz demektir

$kacar  = 20; //sayfada gosterilecek prg sayısı
$toplam = mysql_num_rows(mysql_query("select id from programlar catid='$id'"));  //toplam kayit sayisinin ogrenilmesi
$kacsayfa = $toplam / $kacar; 
$kactan   = ($sayfa-1) * $kacar;

$kayitlar = mysql_query("select * from programlar where catid='$id' limit $kactan,$kacar"); 
while($kayit = mysql_fetch_array($kayitlar)) {
//programlar tablosunda id kolonunun isminin id program adinin oldugu tablonun isminin program_adi oldugunu farz ediyorum
echo"<a href=download.php?id=".$kayit['id'].">".$kayit['program_adi']."</a><br>";
}

sayfa_baglantilari("kategoriler.php","sayfa","$toplam","$kacar","$sayfa",0); // sayfalama linklerinin olusturulmasi

//sayfalama linkleri fonksiyonu 2 adet fonksiyondan olusur 1-2-3-5-10-25-35 seklinde prg sayisina bagli
//vbulletin stili sayfalama yapar ceviz forumdan gordügüm kod un gelistirdigim halidir.
function birdensuna($sayi,$maximum) {
    if ( $sayi >= 1 AND $sayi <= $maximum ) { return $sayi; }
    else { return $maximum; }
}


function sayfa_baglantilari($ana_baglanti,$sayfa_degiskeni,$eleman_sayisi,$sayfa_basina,$aktif_sayfa,$ekmi) {
       $sayfa_sayisi = ceil($eleman_sayisi/$sayfa_basina);
    if ( $aktif_sayfa < 1 OR $aktif_sayfa > $sayfa_sayisi ) { $aktif_sayfa = 1; }
    $sayfalar_araligi = ceil($sayfa_sayisi/20); // sayisi kucultuldukce baglanti sayisi azalir
    $sayfalanacak = array(1,$sayfa_sayisi,birdensuna(($aktif_sayfa-20),$sayfa_sayisi)
    ,birdensuna(($aktif_sayfa-15),$sayfa_sayisi),birdensuna(($aktif_sayfa-10),$sayfa_sayisi)
    ,birdensuna(($aktif_sayfa-5),$sayfa_sayisi),birdensuna(($aktif_sayfa-2),$sayfa_sayisi)
    ,birdensuna(($aktif_sayfa-1),$sayfa_sayisi),$aktif_sayfa
    ,birdensuna(($aktif_sayfa+1),$sayfa_sayisi),birdensuna(($aktif_sayfa+2),$sayfa_sayisi)
    ,birdensuna(($aktif_sayfa+5),$sayfa_sayisi),birdensuna(($aktif_sayfa+10),$sayfa_sayisi)
    ,birdensuna(($aktif_sayfa+15),$sayfa_sayisi),birdensuna(($aktif_sayfa+20),$sayfa_sayisi));
    for ($i=$aktif_sayfa;$i>0;$i=$i-$sayfalar_araligi) { $sayfalanacak[] = $i; }
    for ($i=$aktif_sayfa;$i<$sayfa_sayisi;$i=$i+$sayfalar_araligi) { $sayfalanacak[] = $i; }
    $sayfalanacak = array_unique($sayfalanacak);
    sort($sayfalanacak);
if($aktif_sayfa >= 2 ){ 
			$geri= $aktif_sayfa - 1;
			echo "<a href=\"$ana_baglanti&$sayfa_degiskeni=$geri\">Önceki sayfa << </a>  "; 
		}
    foreach ( $sayfalanacak as $sayfa_no ) {
			
        if ( $sayfa_no == $aktif_sayfa ) { echo "[$sayfa_no] "; }
        else {
            if ( $ekmi == 0 ) { 
			echo "<a  href=\"$ana_baglanti&$sayfa_degiskeni=$sayfa_no\">$sayfa_no</a> "; }
			     else { echo "<a href=\"$ana_baglanti&$sayfa_degiskeni=$sayfa_no\">$sayfa_no</a> "; }

}

    }
					 if($aktif_sayfa <> $sayfa_sayisi ){ 
			$ileri = $aktif_sayfa + 1;
			echo "  <a href=\"$ana_baglanti&$sayfa_degiskeni=$ileri\">>> Sonraki sayfa </a> "; 
			}
	    } 
		
//sayfalama fonksiyonu bitisi
?>
Bundan sonrada bi tane download.php yapıp dosya özelliklerini gösteriyorsun
 
0
Onaylı Üye
Üye
Katılım
2 Şubat 2005
Mesajlar
1,607
Tepki puanı
1
Konum
Neverland
burdaki kategorilere alt kategori insert etmek nasıl olucak peki? yeni bi tablo olmadan tek kategori tablosuyla halledilebilir mi? insert ve select işlemi için örnek bi kod gösterir misiniz mantığı açısından?
 
0
Onaylı Üye
Üye
Katılım
29 Mart 2005
Mesajlar
2,025
Tepki puanı
1
Konum
ankara
cepx.net teşekkür ederim. pembis cevabı msn yoluyla iletiyorum :)
 
0
Onaylı Üye
Üye
Katılım
3 Aralık 2004
Mesajlar
0
Tepki puanı
0
pembekedi' Alıntı:
burdaki kategorilere alt kategori insert etmek nasıl olucak peki? yeni bi tablo olmadan tek kategori tablosuyla halledilebilir mi? insert ve select işlemi için örnek bi kod gösterir misiniz mantığı açısından?

halledilir

Ana yukarıdaki örnekte 1 tane daha kolon eklemek gerekiyor.

şöyleki : id | kategori_adi | altcat
diye 3 lü bir tablomuz olsun
ana kategorilerde altcat değeri sıfır yapın alt kategorilerde de altcat değeri ana kategorinin id no su olsun.
anasayfada ana kategori değerlerini cekerken
PHP:
where altcat='0'
şeklinde ana kategorileri çekersiniz alt kategorileri gösterirkende altcat id si anasayfadan tıklanan ana kategori id sine eşit olanları çekersiniz

Böylece tek tabloda bütün sorunları halletmiş oluruz
 
Geri
Üst