sohbet odaları

yanyana 4lü alt alta 5li sıralama ve sayfalama nasıl yaparım?

M

maiL

merhaba.
ekte verdiğim resim dosyasındaki gibi bir sayfam var 4sutun ve 5satırdan oluşan bunları güzel şekilde dizdim fakat benim yapmak istediğim bu sayfanın altına 1-2-3-4-5-xxx gibi sayfalama yapıp 2. sayfaya geçtiğimizde tekrar 4x5 şeklinde gözükmesini istiyorum. bunu nasıl yapabilirim?
bilgiler :
php+mysql
tablo : oyunlar =>
oyun_id , oyun_resim, oyun isim, oyun_oyun(flash kodunun bulunduğu kısım)
 
M

maiL

MoD teşekkürler fakat benim istediğim olay biraz bunlardan farklı ekte görebilirsin bahsettiğimi. bunlarda safalama var fakat yaptıkları olay alt alta sıralama.
ben 4x5 şeklinde istiyorum. yani durum biraz daha değişik gibi.
 

hakimi

Müptela
Bilgiler
Katılım
1 Temmuz 2006
Mesajlar
1,356
Reaksiyon
0
Puanları
0
210 Aydır Üye
bunu kullan tam istediğin gibi tabloyu düzenleye bilirisin istedğin gibi. linkte xxx.php?id=1olacak ikinci sayfaya geçtiğinde xxx.php?id=1&page=2 olacak
PHP:
<table width="680" valign="top" border=0>

<?
$kat=$_GET['id'];
$page = $_GET['page'];

$max=20;// burayı kaç yaparsan ona göre aşağı doğru uzar
if (!$page) $page=1;
$alt=($page - 1) * $max; 
$q=mysql_query("Select * from xxxx where kat = $kat  order by id desc limit $alt,$max");
$sql2=mysql_query("Select * from xxxx  where kat ='$kat'");
	$nr2=mysql_num_rows($sql2);
       
  
 $newrowcount = 4;


   if ($r= mysql_fetch_array($q)) {

       do {
         if ($newrowcount == 4) {
            $newrowcount = 0;
            printf("</tr>");
          
    	 }
		 
		 
 $be = substr($r['adi'], 0, 100)." ..."; 
			echo " <p><TD width=50% valign=top>
                  <TABLE class=dvd_info_small cellSpacing=0 cellPadding=0 
                  width=100% align=center valign=left border=3 bordercolor=#F7F8FD>
                    <TBODY><TR>
                    <td valign=top width=100% class=normalText  bgcolor=#F7F8FD><a class=cbaslik href=$r[id]-$r[adi]>$r[adi]<br></a>
					 <table width=80 border=0 cellspacing=8 cellpadding=0 align=right>
					 <tr>
                           <td valign=top align=right width=80 bgcolor=#F7F8FD><a class=cbaslik href=$r[id]-$r[adi]><IMG 
                        class=border alt=$r[adi] height=80 src=img/$r[resim] 
                        width=80></A></td>
                          </tr>
                  </table>  
					<span class=vhit>$be</span>
					</td>
						</TR></TBODY></TABLE></TD>

               
                   
                      
	";  
 $newrowcount++;
      } 
 while ($r = mysql_fetch_array($q));
   }
    
echo "</table>"; 
?>
<?
$ss=$nr2/$max;
$ss=ceil($ss);

for ($i=1;$i<=$ss;$i++) {
	if ($page == $i) echo "<FONT class=\"link2 underline ucwords\">$i</font> ";
	else echo "<A class=cbaslik href=$site/xxx.php?id=$id&page=$i> [$i] </A> ";
}
?>
 

MoD

Müptela
Bilgiler
Katılım
8 Nisan 2005
Mesajlar
1,722
Reaksiyon
2
Puanları
0
Şube
Bursa
225 Aydır Üye
Daha onceki ornege ufak bir ek yaparak cozulur.
PHP:
// Bir $sayfa degiskenine ihtiyacimiz olacak. 
$sayfa = $_GET['sayfa'] ? $_GET['sayfa'] : 0; 
$sayfabasi=20; 
$sorgu=mysql_query("select * from oyunlar");
$toplam=mysql_num_rows($sorgu); // toplam veri sayisi
$kacsayfa=ceil($toplam/$sayfabasi); //ceil küsürati bir sonraki sayiya yuvarlar
$basla=$sayfa*$sayfabasi;
/* 
Sayfa basina gosterilecek veri sayisi,
Toplam kac veri oldugu ve bu verilen kac sayfa tutacagini bulduktan sonra
gosterilen sayfada basilacak degerleri tayin edecek SQL sorgusu yazilir while dongusune girip sayfadaki veriler gosterilir.
*/
$sor=mysql_query("select * from oyunlar limit $basla, $sayfabasi"); 
while ($h=mysql_fetch_array($sor)) {

echo '<td >'.$h[oyun_isim].'<br />
<a href="oyun.php?id='.$h[oyun_id].'"><img src="resim/'.$h[oyun_resim].'" alt="'.$h[oyun_ismi].'" />
</td>';
$bolum++;
if ($bolum%4==0) {
echo '</tr><tr>';
}
}
// Sayfada gosterilecek veriler bittiginde sayfalama isleminin yapildigi bolum,
for ($i=0;$i<=$toplam;$i++) {
if ($sayfa == $i) echo "<b>[".$i."]</b> "; // gosterilen sayfaya link verdirmiyoruz.
else echo "[<a href=\"oyun.php?sayfa=".$i."\">".$i."<a>] ";
    }
Denemedim ama normal sartlarda calismasi gerekir.
 
M

maiL

hakimi bu kod içinde teşekkürler ama buda değil ki.
alt alta sıralayıp sayfalama yapmayı bende yapabiliyorum.
benim istediğim apayrı bir olay.

1.resim 2.resim 3.resim 4.resim
5.resim 6.resim 7.resim 8.resim
xxxx
xxxx
xxxx
1-2-3-4-5...

resime bakmış olsanız ne anlatmak istediğimi anlarsınız. malesef diğer türlü sayfalamayı yapabiliyorum bende. benim ihtiyacım olan yukarıdaki gibi sayfalama.
 

hakimi

Müptela
Bilgiler
Katılım
1 Temmuz 2006
Mesajlar
1,356
Reaksiyon
0
Puanları
0
210 Aydır Üye
bu o zaten tam da senin bahsettiğin yani. burada 1000 kayıt olsa hepsini 4*5 listeler ve 50 sayfa yapar alta koyar. aynı kod zaten dikkat edersen sade farklı yol izlenmiş. biraz da ben yazayım ben bu milleti anlamıyorum. yazmasan yazmaz derler yazarsanda çok bilmişlik taslarlar sen bu kodu okudun mu da yada denedin mi de o değil diyorsun.
bir bak bakalım
PHP:
for ($i=0;$i<=$toplam;$i++) { 
if ($sayfa == $i) echo "<b>[".$i."]</b> "; // gosterilen sayfaya link verdirmiyoruz. 
else echo "[<a href=\"oyun.php?sayfa=".$i."\">".$i."<a>] "; 
    }
fark var mı aralarında. hemde dikkatli bak
PHP:
$ss=$nr2/$max; 
$ss=ceil($ss); 

for ($i=1;$i<=$ss;$i++) { 
    if ($page == $i) echo "<FONT class=\"link2 underline ucwords\">$i</font> "; 
    else echo "<A class=cbaslik href=$site/xxx.php?id=$id&page=$i> [$i] </A> "; 
}
bundan sona daha dikkatli yazacam yada ...
 
M

maiL

hakimi tamam dostum. kod için teşekkürler. ben belki hata yaptım. insanlık hali.
ikinize de duyarlılığınızdan dolayı çok teşekkürler. bilipte yardım edebilmek güzel şey.
(hakimi çok kızdı bana, bir daha yardım istersem hayatta bakmaz :))
 
M

maiL

PHP:
// Bir $sayfa degiskenine ihtiyacimiz olacak. 
$sayfa = $_GET['sayfa'] ? $_GET['sayfa'] : 0; 
$sayfabasi=20; 
$sorgu=mysql_query("select * from oyunlar");
$toplam=mysql_num_rows($sorgu); // toplam veri sayisi
$kacsayfa=ceil($toplam/$sayfabasi); //ceil küsürati bir sonraki sayiya yuvarlar
$basla=$sayfa*$sayfabasi;
/* 
Sayfa basina gosterilecek veri sayisi,
Toplam kac veri oldugu ve bu verilen kac sayfa tutacagini bulduktan sonra
gosterilen sayfada basilacak degerleri tayin edecek SQL sorgusu yazilir while dongusune girip sayfadaki veriler gosterilir.
*/
$sor=mysql_query("select * from oyunlar limit $basla, $sayfabasi"); 
while ($h=mysql_fetch_array($sor)) {

echo '<td >'.$h[oyun_isim].'<br />
<a href="oyun.php?id='.$h[oyun_id].'"><img src="resim/'.$h[oyun_resim].'" alt="'.$h[oyun_ismi].'" />
</td>';
$bolum++;
if ($bolum%4==0) {
echo '</tr><tr>';
}
}
// Sayfada gosterilecek veriler bittiginde sayfalama isleminin yapildigi bolum,
for ($i=0;$i<=$toplam;$i++) {
if ($sayfa == $i) echo "<b>[".$i."]</b> "; // gosterilen sayfaya link verdirmiyoruz.
else echo "[<a href=\"oyun.php?sayfa=".$i."\">".$i."<a>] ";
    }
kod üzerinde ufak bir düzelti yapayım.

$kacsayfa=ceil($toplam/$sayfabasi); satırından aldığımız sonucu son satırlardaki ,

// Sayfada gosterilecek veriler bittiginde sayfalama isleminin yapildigi bolum,
for ($i=0;$i<=$toplam;$i++) {

$toplam ın yerine $kacsayfa şeklinde düzelttiğimizde yukarıdaki bölme işlemini yapıp çıkan sonuca göre 1 fazla sayfa oluşturur.

umarım çok arkadaşımıza faydalı olur. tekrar teşekkürler.
 
  • Yararlı
Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur. iyinet.com sayfalarında yer alan yazı, görsel ve linklerle ilgili hukuki şikayetleriniz için Buradan iletişime geçmeniz durumunda, ilgili kanunlar ve yönetmelikler çerçevesinde en geç 7 gün içerisinde iyinet yönetimince tarafınıza dönüş sağlanacaktır.
Üst