• 23-11-2010, 20:57:17
    #1
    Sitede bulduğum bir imza scriptini http://www.fuzekalkaninahayir.com/ sitesine kurdum. Şu an 40 kişi imzaladı ama daha yarım gün bile olmadan bu sayıya ulaştık. Sayının çok fazla artacağını tahmin ettiğim için anasayfada listelenen isimleri sayfalamak istiyorum. Yani 20 tane isim listelenir ,listenin altında İlk... 3-4-5-6... Son şeklinde sayfalanır.

    Bunu yapmama yardımcı olabilecek kimse var mı? Bu verileri listeyen kod şu olması gerek :

    <?php
    $sorgu = "SELECT * FROM imza ORDER BY `id` desc LIMIT 50";
    $sorgulama = @mysql_query($sorgu);
    if (@mysql_num_rows($sorgulama)>0){
    //kayıtları listele
    while ($kayit=@mysql_fetch_assoc($sorgulama)){
    ###################### var ##############################################
    $isim=$kayit["isim"];
    $meslek=$kayit["meslek"];
    $sehir=$kayit["sehir"];
    
    echo "<tr>
        <td><font color=\"#000000\" face=\"verdana\" size=\"2\">$isim</font></td>
        <td><font color=\"#000000\" face=\"verdana\" size=\"2\">$meslek</font></td>
        <td><font color=\"#000000\" face=\"verdana\" size=\"2\">$sehir</font></td>
      </tr>";
    }
    }
    ?>
  • 23-11-2010, 21:07:15
    #2
    <?php
    if(!isset($_GET['sayfa'])){
    $basla = 0;
    }else{
    $basla = intval($_GET['sayfa'])*20;
    }
    $sorgu = "SELECT * FROM imza ORDER BY `id` desc LIMIT {$basla},20";
    $sorgulama = @mysql_query($sorgu);
    $sayfasayisi = ceil(mysql_num_rows($sorgulama) / 20);
    if (@mysql_num_rows($sorgulama)>0){
    //kayıtları listele
    while ($kayit=@mysql_fetch_assoc($sorgulama)){
    ###################### var ##############################################
    $isim=$kayit["isim"];
    $meslek=$kayit["meslek"];
    $sehir=$kayit["sehir"];
    
    echo "<tr>
        <td><font color=\"#000000\" face=\"verdana\" size=\"2\">$isim</font></td>
        <td><font color=\"#000000\" face=\"verdana\" size=\"2\">$meslek</font></td>
        <td><font color=\"#000000\" face=\"verdana\" size=\"2\">$sehir</font></td>
      </tr>";
    }
    }
    echo "<tr>";
    for($i = 2; $i < $sayfasayisi; $i++){
    echo ' <a href="/?sayfa='.$i.'">sayfa-'.$i.'</a> |';
    }
    echo"</tr>";
    ?>
    gibi bir kod çalışır sanırım. denemeden yazdım ama...
  • 23-11-2010, 21:11:43
    #3
    @digiklan malesef olmadı. Sadece son 20 kişiyi gösteriyor.
  • 23-11-2010, 22:34:30
    #4
    Aşağıdaki kod çalışıyor üzerinde biraz daha çalışman lazım aksi takdirde numarlar uzayacaktır.


    <?php
    
    
    
    $limit  = "20";
    $sayfa = (!empty($_GET['sayfa'])) ? (int)$_GET['sayfa'] : 1;
    $toplam_kayit  = mysql_num_rows(mysql_query("SELECT id FROM imza"));
    
    
    
    $offset =  $sayfa * $limit;
    
    $offset = $offset - $limit;
    
    $sayfa_sayisi  =  ceil($toplam_kayit / $limit);
    
    
    
    $sorgu = "SELECT * FROM imza ORDER BY `id` desc LIMIT ".$limit." OFFSET ".$offset;
    
    
    $sorgulama = @mysql_query($sorgu);
    if (@mysql_num_rows($sorgulama)>0){
    //kayıtları listele
    while ($kayit=@mysql_fetch_assoc($sorgulama)){
    ###################### var ##############################################
    $isim=$kayit["isim"];
    $meslek=$kayit["meslek"];
    $sehir=$kayit["sehir"];
    
    echo "<tr>
        <td><font color=\"#000000\" face=\"verdana\" size=\"2\">$isim</font></td>
        <td><font color=\"#000000\" face=\"verdana\" size=\"2\">$meslek</font></td>
        <td><font color=\"#000000\" face=\"verdana\" size=\"2\">$sehir</font></td>
      </tr>";
    }
    }
    
    
    ?>
    
    
    
    
    
    <?php
    
            
            for($i = 1; $i <= $sayfa_sayisi; $i++)
            {
                if($i == $sayfa)
                {
                    echo "<strong>".$i."</strong>";
                    
                }
                else
                {
                
                    echo "[<a href=?sayfa=".$i.">".$i."</a>]";    
                }
            }
    
    
    
    
    
    
    
    ?>
  • 23-11-2010, 22:43:01
    #5
    @metanek çok teşekkürler. Varsın uzasın çok uzarsa bir çaresini buluruz. Ellerinize sağlık.
  • 24-11-2010, 00:09:54
    #6
    Bu da uzamayan kod.

    <?php
    
    $limit  = "20";
    $sayfa = (!empty($_GET['sayfa'])) ? (int)$_GET['sayfa'] : 1;
    $toplam_kayit  = mysql_num_rows(mysql_query("SELECT id FROM imza"));
    
    
    
    $offset =  $sayfa * $limit;
    
    $offset = $offset - $limit;
    
    $sayfa_sayisi  =  ceil($toplam_kayit / $limit);
    
    
    
    $sorgu = "SELECT * FROM imza ORDER BY `id` desc LIMIT ".$limit." OFFSET ".$offset;
    
    
    $sorgulama = @mysql_query($sorgu);
    if (@mysql_num_rows($sorgulama)>0){
    //kayıtları listele
    while ($kayit=@mysql_fetch_assoc($sorgulama)){
    ###################### var ##############################################
    $isim=$kayit["isim"];
    $meslek=$kayit["meslek"];
    $sehir=$kayit["sehir"];
    
    echo "<tr>
        <td><font color=\"#000000\" face=\"verdana\" size=\"2\">$isim</font></td>
        <td><font color=\"#000000\" face=\"verdana\" size=\"2\">$meslek</font></td>
        <td><font color=\"#000000\" face=\"verdana\" size=\"2\">$sehir</font></td>
      </tr>";
    }
    }
    
    echo "<table width=\"100%\" height=\"30px\">";
    echo "<td height=\"10\">";
    echo "</td>";
    echo "</table>";
    ?>
    
    
    
    
    <?php
    
    echo "<table width=\"100%\">";
    echo "<tr width=\"100%\">";
    if($sayfa_sayisi < 12)
    	{
            
            for($i = 1; $i <= $sayfa_sayisi ; $i++)
            {
                if($i == $sayfa)
                {
                    echo "<strong>".$i."</strong>";
                    
                }
                else
                {
                
                    echo "[<a href=?sayfa=".$i.">".$i."</a>]";    
                }
            }
    		
    	}else{
    		if(isset($_GET['sayfa']) && intval($_GET['sayfa']) > 1)
    		{
    		echo "[<a href=index.php>ilk sayfa</a>]";
    		}
    			if(intval($_GET['sayfa']-6) < 1){
    			$y= 2;
    			}else{
    			$y= intval($_GET['sayfa']-6);
    			}
    	
    		 for($r = $y; $r < intval($_GET['sayfa']) && $r > 0 ; $r++)
    			{
    
    					
    						echo "[<a href=?sayfa=".$r.">".$r."</a>]";    
    					
    				
    			}
    		if(intval($_GET['sayfa']) > 1 ){
    		echo "<strong>".intval($_GET['sayfa'])."</strong>";
    		}
    		for($i = intval($_GET['sayfa'])+1; $i < intval($_GET['sayfa'])+7; $i++)
    			{
    				if($i < $sayfa_sayisi)
    				{
    					if($i > 1){
    						echo "[<a href=?sayfa=".$i.">".$i."</a>]";    
    					}
    				}
    				
    				
    			}
    		if(intval($_GET['sayfa']) < $sayfa_sayisi -7)
    				{
    					
    				echo "[<a href=?sayfa=".$sayfa_sayisi.">son sayfa</a>]";    
    					
    				}else{
    					echo "[<a href=?sayfa=".$sayfa_sayisi.">".$sayfa_sayisi."</a>]";    
    
    				}
    
    	}
    
    echo "</tr>";
    echo "</table>";
    ?>
  • 24-11-2010, 09:36:31
    #7
    @digiklan ellerinize sağlık ,çok teşekkür ederim. Daha ilk geceden 500 kişi olduk sayfalar fazla sıkıntı yaratmadan sayenizde çözüldü.