İyinet'e Hoşgeldiniz!

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

Kayıt Ol!

Veritabanından Gelen Veriyi Düzgün Tablolara Aktarmak

OsmanAtabey

0
İyinet Üyesi
Katılım
26 Mart 2005
Mesajlar
922
Reaction score
4
Selam

Aşağıdaki kod veritabanından istenen verileri çekiyor ve ekrana link olarak basıyor.

PHP:
while ( $veri = mysql_fetch_array($sorgu)) {
echo '<a href="'. $veri['kategori'] .'">'. $veri['kategori'] . '</a>';
}

Gelen verinin görünümü normal olarak alt alta oluyor.

kategori1
kategori2
kategori3 şeklinde

Bu veriyi <table><tr><td> içine aldığımda yan yana sıkışık bir görünüm elde ediliyor.   boşluk karakteri kullandığımda bile düzgün bir görünüm sağlanamıyor. Bazı kategori isimlerinin yarısı üst satırdayken diğer yarısı alt satıra geçmiş olabiliyor.

Yapmak istediğim şey : Bir satırda düzgün aralıklarla ve yan yana 3 tane kategori ismi olmasını istiyorum diğer 3 kategori ile arasında bir boşluk olmalı ve bu şekilde devam etmeli.

Bu şekilde çalışan bir sistem için nasıl düzgün bir tablolandırma yapabilirim ?
 

atay

0
İyinet Üyesi
Katılım
29 Ekim 2005
Mesajlar
3,592
Reaction score
37
PHP:
$sorgu=mysql_query("select * from kategoriler");
$say=mysql_num_rows($sorgu);

$sutunsayi=3; // Kaç sütun olacak
$toplamsatir=ceil($say/$sutunsayi);

for ($i=0;$i<$toplamsatir;$i++) {
	echo '<tr>';
	for ($x=0;$x<$sutunsayi;$x++) {
		$bilgi=mysql_fetch_array($sorgu);
		if (!empty($bilgi["kategori"])) { echo '<td><a href="'.$bilgi['kategori'].'">'.$bilgi['kategori'].'</a></td>'; }
	}
	echo '</tr>';
}

Test etmedim fakat çalışması lazım.
 

atay

0
İyinet Üyesi
Katılım
29 Ekim 2005
Mesajlar
3,592
Reaction score
37
Rica ederim, bu arada <table> açmayı ve kapatmayı unutmuşum, onu eklersin :)
 

OsmanAtabey

0
İyinet Üyesi
Katılım
26 Mart 2005
Mesajlar
922
Reaction score
4
Zaten onsuz düzgün görünüyor :) Üst tarafında <table><tr><td> var senin verdiğinde sadece <tr> ve <td> olduğu için nizami olarak düzgün görünüyor.
 

OsmanAtabey

0
İyinet Üyesi
Katılım
26 Mart 2005
Mesajlar
922
Reaction score
4
Üstteki fazla <tr><td> 'yi sildim ve table 'ye cellspacing cellpadding ekledim. Son durum tam istediğim gibi oldu.
 

OsmanAtabey

0
İyinet Üyesi
Katılım
26 Mart 2005
Mesajlar
922
Reaction score
4
Gelen veriyi 1 tablodan fazla böldüğümde tek sayı olan veriler için fazladan 1 tablo ekleniyor.

Örnek: 5 kayıt geliyor 2 'şer parça olarak tablolandırma yapıyorum. 6 tablo ekliyor ve o tablo boş oluyor.

if sorgusu ekleyerek 1 kayıt varsa tek tablo yap 1 'den fazlaysa 2 yap diye ekledim ve for döngüsünde oynama yaptım ama olmadı. Acaba nerde yanlış yapıyorum ?
 

atay

0
İyinet Üyesi
Katılım
29 Ekim 2005
Mesajlar
3,592
Reaction score
37
Gelen veriyi 1 tablodan fazla böldüğümde tek sayı olan veriler için fazladan 1 tablo ekleniyor. Örnek: 5 kayıt geliyor 2 'şer parça olarak tablolandırma yapıyorum. 6 tablo ekliyor ve o tablo boş oluyor. if sorgusu ekledim ve for döngüsünde oynama yaptım ama acaba nerde yanlış yapıyorum.

Kodun şu anki halini past edersen inceleyeyim bi.
 

OsmanAtabey

0
İyinet Üyesi
Katılım
26 Mart 2005
Mesajlar
922
Reaction score
4
PHP:
<? 		
				
				$say = mysql_num_rows($sonuc);
				echo $say . " Kayıt var <br>";
				
				if ($say > 1) {
				$sutunsayi = 2;
				$toplamsatir = ceil($say/$sutunsayi);
				echo "Sütun Sayısı : " . $sutunsayi . "<br>";
				echo "Toplam Satır : " . $toplamsatir . "<br>";
				
				} elseif ($say == 1){
				$sutunsayi = 1;
				$toplamsatir = ceil($say/$sutunsayi);
				echo "Sütun Sayısı : " . $sutunsayi . "<br>";
				echo "Toplam Satır : " . $toplamsatir . "<br>";

				}
				for ($i=0;$i<$toplamsatir;) {
    			echo '<tr>';
    			for ($x=0;$x<$sutunsayi;) {
        		$veri = mysql_fetch_array($sonuc);
        		echo $veri['icerik'];    			
    			$x++;
    			}
    			
    			echo '</tr>';
				$i++;
				}

?>
 

OsmanAtabey

0
İyinet Üyesi
Katılım
26 Mart 2005
Mesajlar
922
Reaction score
4
Böyle birşey buldum işimi görüyor ama detaylar için üzerinde çalışıyorum şimdi.

PHP:
                $x = 0;
    			$sutun  = 3;
    			echo' 
				<table> 
    			<tr>'; 
    			while($veri = mysql_fetch_array($sonuc)) 
    			{ 
    			$x++; 
        		echo ' 
        		<td>',$veri['icerik'],'</td>'; 
       			if ($x % $sutun == 0) 
        		{ 
        		echo ' 
    			</tr> 
    			<tr>'; 
       			 } 
    			} 
   				 echo' 
    			</tr> 
				</table>';
 

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.

Üst