İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Yan Yana sıralamak yardım!

D

Derebeyi

Misafir
Merhaba, Şimdi Mesela Oyunları Sayfamda 5 er 5 er alt alta olmak üzere
Sayfanın sonuna kadar sıralıycam şu şekilde olmasını istiyorum.Aşağıdaki linkte örneği veriyorum:

http://img118.imageshack.us/img118/9836/or3bt0.gif

umarım anlata bilmişimdir.
Şunu Mysqlden çekerken sayfada karmakarışık olmasını bi türkü çözemedim yardımlarınızı bekliyorum.
 

Caesar

0
İyinet Üyesi
Katılım
5 Haziran 2006
Mesajlar
1,894
Reaction score
7
PHP:
<table border='0'>
<?
$sorgu=mysql_query("select id,adi,resim from tablo order by id desc limit 30");
$say=0;
while ($oku=mysql_fetch_array($sorgu)) {
$say++;
 if ($say%5==1) {
  echo "
  <tr>
    <td align=center><img src='$oku[resim]'><br><a href='hodo.php?id=$oku[id]'>$oku[adi]</a></td>
  ";
 } else if ($say/5==1) {
  echo "
   <td align=center><img src='$oku[resim]'><br><a href='hodo.php?id=$oku[id]'>$oku[adi]</a></td>
    </tr>
  ";
 } else {
  echo "
  <td align=center><img src='$oku[resim]'><br><a href='hodo.php?id=$oku[id]'>$oku[adi]</a></td>
  ";
 }
}
?>
</table>
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Once <table>'i cizdireceksin. MySQL'den verileri cekip listeletmeye baslayacaksin dongu icinde. 1'den baslayacaksin, her adim icin 5 modulus alacaksin. (Modulus = Sayinin 5'e bolumunden elde edilen kalan). Modulus 1 ise, yani (1,6,11,16 vb. numarali adimlar) <tr> cizdir, sonra <td> altinda ilgili oyunu listelet. Eger modulus 2,3,4 ise bunlar ara numaralardir, sadece <td> altinda oyunu listelet. Eger modulus 0 ise, yani (5,10,15,20 vb. numarali adimlar), bu satirin kapanis oyunudur, <td> altinda oyunu listelet daha sonra </tr> yi kapat.


PHP:
$q = mysql_query("SELECT * FROM oyunlar");

$i = 1;  // baslangic

echo "<table>";   // Tablo'yu ciz

while ($a = mysql_fetch_array($q)) {

$k = $i % 5;  // mod 5

switch ($k) {   // K'nin durumunu incele

case "1": 
echo "<tr><td>$a[isim]</td>";  // Isim veya baska birsey istege gore
break;

case "0":
echo "<td>$a[isim]</td></tr>";
break;

default:
echo "<td>$a[isim]</td>";
break;

}

$i++;   // Adimlari dongu icinde birer arttir.
}

echo "</table>";  // Table'i kapa
 

sempaty

1
İyinet Üyesi
Katılım
25 Şubat 2005
Mesajlar
3,824
Reaction score
19
Konum
hawaii. ama sanal tur.
benzer bişey, şu nasıl yapılır acaba

resimmy1.jpg
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
SQL sorguya GROUP BY kategori diyerek, once butun kategoriler bulunur, sonra her bir kategori icin dongu yaratilir. Bir ustteki mantik bu her bir dongu icin ic ice uygulanir.
 
D

Derebeyi

Misafir
Çok teşekkür ederim Angelo ve Caesar Sorunu Hallettim bir flash oyun scriptti hazırlıyorumda yolun %75 sayenizde bitti:)
 
S

.SErKAn.

Misafir
@sempaty
verileri döngü ile çekmeden önce bir değişkeni "0" olarak atıyorsun. Sonra döngü içinde 0 değeri verdiğin değişkeni birer artırarak, if ile değişken 5 değerini almışsa <tr> koy diyorsun. <tr> koydurduktan sonra 5 değerini almış değişkene tekrar 0 değerini verdiriyorsun o kadar.

Bu şekilde istediğin çıktıyı alabilirsin.
 

forumselcuk

0
İyinet Üyesi
Katılım
26 Şubat 2006
Mesajlar
713
Reaction score
1
Konum
Selçuk Üniversi
php bilmiyorum ama .serkan. arkadaşımızın bahsettiği yöntemi asp de kullanıyorum
while döngüsünden önce bir değişken tanımlıyorsun (mesela sayac) ve değer olarak 1 diyorsun
ve while döngüsü içinde 1 1 arttırıyorsun
sonra sonda if sayac=5 ise satırı bitir yani </tr><tr> ve sayiyi 1 yap
böylece hiç sorun çıkmaz
 

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.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst