Kategori içinde haber çekmek.
php yeni başladım. Kategorilerin içindeki haberleri çekmek istiyorum ama bir türlü yapamadım. Her kategoride ki on haberi çekip o kategori altında ekrana basmak istiyorum. Kategoriyi çekince haberleri çekemiyorum haberleri çekince kategoriyi çekemiyirum. Yardımıcı olursanız sevinirim.
php yeni başladım. Kategorilerin içindeki haberleri çekmek istiyorum ama bir türlü yapamadım. Her kategoride ki on haberi çekip o kategori altında ekrana basmak istiyorum. Kategoriyi çekince haberleri çekemiyorum haberleri çekince kategoriyi çekemiyirum. Yardımıcı olursanız sevinirim.
kategorileri ve haberleri cektigin kodlari paylasırsan yardımcı olmaya calısalım
kodlarım şöyle
"<?php
include("ayar.php");?>
<?php
$sorgu=mysql_query("SELECT * FROM kategori ORDER BY id ASC LIMIT 10");
while($bilgi=mysql_fetch_array($sorgu)){
$id=$bilgi['id'];
$baslik=$bilgi['kategori'];
echo "<div class=\"dusenHaber\"><div class=\"dusenBaslik\"><a href=\"haber.php?id=$id\">$baslik</a></div></div> ";
}
?>
"
php
aslında yapman gereken cok basit while dongusunun icinde bir tane daha while dongusu olusturacaksin oradanda haberleri cekeceksin
iki adet sorgu dondurmen yeterli biri kategorileri cekmek icin bir digeri ise haberleri her kategorinin altında 10 tane haber istiyorsan kategori cektigin while dongusunun icinde bir haber dongusu olusturman bu kadar
Denedim bir türlü yapamadım... Veri tabanımda kayıtlı olan sadece bir kategori gözüküyor geri kalan kategorileri ekrana basmıyor. Ve haberlerin tümü o kategoride gözüküyor. Bana nasıl yapacağımı bir örneklen anlatırmısınız? Şimdiden teşekkür ederim.
Php
tabi ben bunu yazarken veri tabanında bir haber bolumu bir de kategori bolumu oldugunu farz ediyorum su sekilde olacak
<?php
$kat_sorgu=mysql_query("select * from kategori order by id asc limit 10");
$haber_sorgu=mysql_query("select * from kategori order by id asc limit 10");
while($bilgi=mysql_fetch_array($kat_sorgu)){
echo $bilgi['kategori'];
while($haber=mysql_fetch_array($haber_sorgu)){
echo $haber['haber'];
}
}
?>
Söylediğin gibi yaptım, yine yapamadım... Veri tabanımdaki tablolar aşağıdaki gibidir. Yardımcı olursan sevinirim...
CREATE TABLE IF NOT EXISTS `kategori` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`kategori_adi` text,
`sira` int(11) DEFAULT NULL,
`kategoriSeo` text,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5 AUTO_INCREMENT=76 ;
haberler
CREATE TABLE IF NOT EXISTS `haberler` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`baslik` text,
`kategori` text,
`editor` text,
`tarih` text,
`guncelleme` text,
`okunma` text,
`mansetResim` text,
`mansetDurum` text,
`son` text,
`konum` text,
`metin` text,
`kucukResim` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5 AUTO_INCREMENT=97 ;
Php
<?php
$kat_sorgu=mysql_query("select * from kategori order by id asc limit 10");
$haber_sorgu=mysql_query("select * from haberler order by id asc limit 10");
while($bilgi=mysql_fetch_array($kat_sorgu)){
echo $bilgi['kategori_adi']."<br>";
while($haber=mysql_fetch_array($haber_sorgu)){
echo $haber['baslik']."<br>";
}
}
?>
buyuk ihtimal benim yazdıgım kodları kopyala yapıstır yaptın her halde ben sadece ornek olarak o kodu yazdım kendi kodlarına uyarlaman gerekli normal sartlarda calısmaması icin hicbir neden yok
Sorunum şu bütün kategorileri ekrana basıyor ama bütün haberleri ilk kategorinin içine basıyor. Bu haberler başka kategorilere ait olmasına rağmen hepsi ilk kategorinin içine basılıyor. Senin gönderdiğini de uyguladığımda böyle oluyor. Bu neden kaynaklanıyor.
Php
<?php
$kat_sorgu=mysql_query("select * from kategori order by id asc limit 10");
while($bilgi=mysql_fetch_array($kat_sorgu)){
$haber_sorgu=mysql_query("select * from haberler where kategori='".$bilgi['kategori_adi']."' order by id asc limit 10");
echo $bilgi['kategori_adi']."<br>";
while($haber=mysql_fetch_array($haber_sorgu)){
echo $haber['baslik']."<br>";
}
}
?>
simdi calısır mantık su haberlerin kategorisi kategori adına esitse ekrana basacak