• 29-11-2007, 10:54:07
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    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.