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

0
Onaylı Üye
Üye
Katılım
25 Mart 2005
Mesajlar
922
Tepki puanı
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 ?
 
0
Onaylı Üye
Üye
Katılım
29 Ekim 2005
Mesajlar
3,592
Tepki puanı
36
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.
 
0
Onaylı Üye
Üye
Katılım
29 Ekim 2005
Mesajlar
3,592
Tepki puanı
36
Rica ederim, bu arada <table> açmayı ve kapatmayı unutmuşum, onu eklersin :)
 
0
Onaylı Üye
Üye
Katılım
25 Mart 2005
Mesajlar
922
Tepki puanı
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.
 
0
Onaylı Üye
Üye
Katılım
25 Mart 2005
Mesajlar
922
Tepki puanı
4
Üstteki fazla <tr><td> 'yi sildim ve table 'ye cellspacing cellpadding ekledim. Son durum tam istediğim gibi oldu.
 
0
Onaylı Üye
Üye
Katılım
25 Mart 2005
Mesajlar
922
Tepki puanı
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 ?
 
0
Onaylı Üye
Üye
Katılım
29 Ekim 2005
Mesajlar
3,592
Tepki puanı
36
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.
 
0
Onaylı Üye
Üye
Katılım
25 Mart 2005
Mesajlar
922
Tepki puanı
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++;
				}

?>
 
0
Onaylı Üye
Üye
Katılım
25 Mart 2005
Mesajlar
922
Tepki puanı
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>';
 
Geri
Üst