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.
 
0
Onaylı Üye
Üye
Katılım
5 Haziran 2006
Mesajlar
1,894
Tepki puanı
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>
 
0
Onaylı Üye
Üye
Katılım
12 Aralık 2004
Mesajlar
9,603
Tepki puanı
106
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
 
1
Onaylı Üye
Üye
Katılım
25 Şubat 2005
Mesajlar
3,824
Tepki puanı
20
Konum
hawaii. ama sanal tur.
benzer bişey, şu nasıl yapılır acaba

resimmy1.jpg
 
0
Onaylı Üye
Üye
Katılım
12 Aralık 2004
Mesajlar
9,603
Tepki puanı
106
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:)
 
1
Onaylı Üye
Üye
Katılım
25 Şubat 2005
Mesajlar
3,824
Tepki puanı
20
Konum
hawaii. ama sanal tur.
evet :) aynen
 
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.
 
0
Onaylı Üye
Üye
Katılım
26 Şubat 2006
Mesajlar
713
Tepki puanı
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
 
Geri
Üst