• 29-11-2007, 10:54:07
    #1
    Merhaba arkadaşlar, güzel bir sayfalama örneği buldum.
    Ben bunu kategoriler kısmına uyarlamak istiyorum ama bir türlü yapamadım.
    Yüklü miktarda bilgi çekeceğim için bu sayfalama işimi görecek.
    Kodlar ÅŸu ÅŸekilde
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
    <html> 
    <head> 
    <title>Veritabanı Sayfala</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9"> 
    <style type="text/css"> 
    body{ 
    margin:0; 
    padding:0; 
    font-size:11px; 
    font-family:Tahoma, Verdana, Arial, Helvetica, sans-serif; 
    } 
    table{ 
    border:1px solid #999; 
    margin-top:20px; 
    } 
    td{ 
    padding:3px; 
    } 
    .baslik{ 
    font-weight:bold; 
    text-align:center; 
    border:1px solid #999; 
    background-color:#900; 
    color:#fff; 
    padding:5px; 
    } 
    .sol, .sol2{ 
    text-align:center; 
    font-weight:bold; 
    } 
    .orta, .orta2{ 
    border-left:1px solid #999; 
    } 
    .sag, .sag2{ 
    border-right:1px solid #999; 
    border-left:1px solid #999; 
    } 
    .sol, .orta, .sag{ 
    background-color:#f4f4f4; 
    border-bottom:1px solid #999; 
    } 
    .sol2, .orta2, .sag2{ 
    background-color:#ddd; 
    border-bottom:1px solid #999; 
    } 
    .div_sayfa{ 
    font-weight:bold; 
    color:#009; 
    margin:10px; 
    padding:10px; 
    text-align:center; 
    } 
    .div_sayfa a{ 
    color:#06c; 
    font-weight:bold; 
    padding:3px; 
    } 
    .div_sayfa a:hover{ 
    color:#060; 
    } 
    .self{ 
    color:#333; 
    font-weight:bold; 
    background-color:#ccc; 
    padding:3px; 
    } 
    .s_yok{ 
    color:#666; 
    font-style:italic; 
    padding:10px; 
    text-align:center; 
    } 
    </style> 
    </head> 
    <body> 
    <?php 
    //Veritabanı bağlantı ayarları 
    $host= "localhost"; 
    $database = ""; //Veritabanı adı 
    $username = ""; //Kullanıcı adı 
    $password = ""; //Åžifre 
    $sql = mysql_connect($host, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);  
    mysql_select_db($database, $sql); 
    
    $gelen_sayfa = (isset($_GET['sayfa']) && $_GET['sayfa'] !='' ) ? intval($_GET['sayfa']) : 1; 
    
    //Bağlanılacak Tablo 
    $tablo = 'tablo'; 
    
    //Sayafalamayı yapan dosyanın adı 
    $link = 'sayfala.php'; 
    
    //Sayfada kaç kayıt görünecek 
    $limit= 20; 
    
    //Kaç sayfa öncesi ve sonrası görünecek 
    $s_s = 10; 
    
    /*------------------------------------ 
    Alan Başlıklarını ve $sonuc['alan1']  
    kısımlarını kendinize göre değiştirin 
    -------------------------------------*/ 
    $s_sor = mysql_query("select count(id) from $tablo") or trigger_error(mysql_error(),E_USER_ERROR); 
    $satir = mysql_result($s_sor,0); 
    mysql_free_result($s_sor); 
    echo '<table width="80%" align="center" border="0" cellspacing="0" cellpadding="0"> 
                <tr> 
                    <td class="baslik">No</td> 
                    <td class="baslik">Alan 1 Başlık</td> 
                    <td class="baslik">Alan 2 Başlık</td> 
                    <td class="baslik">Alan 3 Başlık</td> 
                    <td class="baslik">Alan 4 Başlık</td> 
                </tr>'; 
    if($satir >0){//sonuç varsa 
        $baslama = ($gelen_sayfa > 1) ? (($gelen_sayfa -1) * $limit) : 0 ; 
        $sayfa_kac = $satir/$limit; 
        $sayfa_sayisi = ($satir % $limit != 0) ? intval($sayfa_kac)+1 : intval($sayfa_kac); 
        $basla=( $satir >= $baslama ) ? $baslama : 0 ; 
        unset( $sayfa_kac, $baslama ); 
        $sorgu = 'select * from '.$tablo.' order by id asc limit '.$basla.' , '.$limit; 
        $sorgula = mysql_query($sorgu) or trigger_error(mysql_error(),E_USER_ERROR);  
        $i=1; 
            $style=''; 
            while($sonuc=mysql_fetch_array($sorgula)){ 
                echo ' 
                <tr> 
                    <td class="sol'.$style.'">'.$i.'</td> 
                    <td class="orta'.$style.'">'.$sonuc['alan1'].'</td> 
                    <td class="orta'.$style.'">'.$sonuc['alan2'].'</td> 
                    <td class="orta'.$style.'">'.$sonuc['alan3'].'</td> 
                    <td class="orta'.$style.'">'.$sonuc['alan4'].'</td>'; 
                    $style = ($style=='') ? '2' : ''; 
                $i++; 
                }//while son 
            mysql_free_result($sorgula);//hafızayı boşalt 
            $hangi_sayfa= ($gelen_sayfa > 0)? $gelen_sayfa : 1 ; 
            echo ' 
            </table> 
            <div class="div_sayfa"> 
                Toplam '.$sayfa_sayisi.' Sayfadan '.$hangi_sayfa.'. Sayfa<br /><br />';     
                $alt= ($gelen_sayfa - $s_s); 
                if($sayfa_sayisi <= $s_s || $gelen_sayfa <= $s_s ) {$alt=1;}  
                $ust= (($gelen_sayfa + $s_s)< $sayfa_sayisi ) ? ($gelen_sayfa + $s_s) : ($sayfa_sayisi);     
                echo ($gelen_sayfa > 1 )? '<a href="'.$link.'?sayfa=1" title="İlk Sayfa"><strong>&laquo; </strong></a><a href="'.$link.'?sayfa='.($gelen_sayfa -1).'" title="Önceki Sayfa"><strong>Geri</strong></a>':' '; 
                for($i=$alt; $i<=$ust ;$i++){         
                    echo ($i != $gelen_sayfa ) ? '<a title="'.$i.'. Sayfa" href="'.$link.'?sayfa='.$i.'">'.$i.'</a>' : '<span class="self">'.$i.'</span>'; 
                    } 
                echo ($gelen_sayfa < $sayfa_sayisi)? '<a href="'.$link.'?sayfa='.($gelen_sayfa +1).'" title="Sonraki Sayfa"><strong>İleri</strong></a><a href="'.$link.'?sayfa='.$sayfa_sayisi.'" title="Son Sayfa"><strong> &raquo;</strong></a>' :''; 
                echo '</div>'; 
    } 
    else{ 
            echo '<tr><td colspan="5" class="s_yok">Hiç Bir Sonuç Bulunamadı</td></tr></table>'; 
    } 
    
    mysql_close($sql); 
    ?> 
    </body> 
    </html>
    kat.php adında bir dosyaya yerleştireceğim.
    db de dosyaların kategori idlerin olduğu tablo adı cat_id buna göre kategoriden nasıl bilgi çekerim?
  • 29-11-2007, 13:04:27
    #2
    Kurumsal PLUS
    scripti çok incelemedim ama sadece sorguyu düzenlesen olur sanırım.
  • 29-11-2007, 13:23:29
    #3
    çok teşekkür ederim bartuc ellerine sağlık sayende bir sıkıntıyı daha atlattım.