Giriş Yap / Kayıt Ol

WM Aracı'na üyelikler tekrar açıldı! Kayıt olmak için TIKLAYIN!

2Beğeni
  • 1 Yazan brown
  • 1 Yazan MehmetMaşa

Cevap Yaz Favorilerime Ekle
Seçenekler Stil
Geri Git   Forum > > Yazılım

PHP ile Sayfalama ?

  #1  
Okunmamış 10 Haziran 2019, 13:36
Mamilost Adlı Üyenin Avatarı
WM Aracı
 
Üyelik Tarihi: 11 Mayıs 2019
Yaş / Cinsiyet: 18 / Erkek
Meslek: Öğrenci
Konum: Şanlıurfa
Ad, Soyad: Me... Ki...
Mesajlar: 5
Beğeniler: 1 / 7
Ticaret: 0, 0%
Merhaba beyler bi script yazıyorum fakat sayfalama yerinde takıldım bir türlü yapamadım normal anasayfa sayfalamasında sıkıntı çıkmıyor fakat konu yorumlarında biraz hata alıyorum sayfalamayı yapıyor



fakat tıkladıgım zaman (kod sekli = ?sayfa=2) o sayfaya gitmiyor oldugu yerde kalıyor. bilenleriniz varsa yardım edebilirlermi ?
  #2  
Okunmamış 10 Haziran 2019, 14:20
brown Adlı Üyenin Avatarı
WM Aracı
 
Üyelik Tarihi: 28 Ekim 2013
Yaş / Cinsiyet: 21 / Erkek
Meslek: öğrenci
Ad, Soyad: Hü... Ek...
Mesajlar: 1.754
Beğeniler: 385 / 384
Ticaret: 21, 100%
Hocam nasıl bir algoritma kurduğunuzu bilmiyoruz, kodları verirseniz daha sağlıklı olur yardımcı olabilmemiz açısından.
Mamilost bunu beğendi.
  #3  
Okunmamış 10 Haziran 2019, 14:21
Avatar Seçilmemiş
WM Aracı
 
Üyelik Tarihi: 05 Ekim 2016
Yaş / Cinsiyet: 22 / Erkek
Meslek: Yazılımcı
Konum: İzmir
Ad, Soyad: Me... Ma...
Mesajlar: 1.970
Beğeniler: 536 / 701
Ticaret: 37, 100%
Merhaba, ilk sayfalama için bunu kullanmıştım;

https://www.phpr.org/php-ile-sayfalama/

Veri tabanı işlemlerinde fazla ilerlemediyseniz (Salt PDO) kullanıyorsanız

https://github.com/tayfunerbilen/basicdb
Tayfun erbilen basicdb öneririm. Oop/Pdo mantığı ile her sorguda select, insert gibi sorgular yazmanıza gerek kalmaz, kolay yönetilir ve çok kolay sayfalama yapabilirsiniz.

PHP- Kodu:
// pagination example
$totalRecord $db->from('users')
                  ->
select('count(user_id) as total')
                  ->
total();
$pageLimit 4;
$pageParam 'page';
$pagination $db->pagination($totalRecord$pageLimit$pageParam);
$query $db->from('users')
            ->
orderby('user_id''DESC')
            ->
limit($pagination['start'], $pagination['limit'])
            ->
all(); 
Bütün sayfalama kodları bundan ibaret
Mamilost bunu beğendi.
  #4  
Okunmamış 10 Haziran 2019, 14:45
Mamilost Adlı Üyenin Avatarı
WM Aracı
 
Üyelik Tarihi: 11 Mayıs 2019
Yaş / Cinsiyet: 18 / Erkek
Meslek: Öğrenci
Konum: Şanlıurfa
Ad, Soyad: Me... Ki...
Mesajlar: 5
Beğeniler: 1 / 7
Ticaret: 0, 0%
Alıntı:
brown Adlı Üyeden Alıntı
Hocam nasıl bir algoritma kurduğunuzu bilmiyoruz, kodları verirseniz daha sağlıklı olur yardımcı olabilmemiz açısından.
Kod:
<?php include "inc/header.php"; ?>
<?php

  $sayfa = intval(@$_GET["sayfa"]);
  
 



      $do = $_GET["url"];
  
        $konu = $db->prepare("select * from konular inner join kategoriler on 

kategoriler.kategori_sef = konular.konu_kategori inner join uyeler on uyeler.uye_adi = konular.konu_ekleyen where konu_sef=?");
        $konu->execute(array($do));
        $x =  $konu->fetchALL(PDO::FETCH_ASSOC);

        if (!$konu->rowCount()) {
          header("location:index.php");
        }

 ?>
    <section class="mt-5">
      <div class="container">
        <div class="row">

                   <?php 


        // konu hit bölümü 
        if (!@$_COOKIE["hit".$do]) {
        
        $hit = $db->prepare("UPDATE konular SET konu_hit = konu_hit + 1 WHERE konu_sef=?");
        $hit->execute(array($do));

        setcookie("hit".$do,"_",time()+5000);
        }

      

        foreach ($x as $m) {
           
          ?>

          <div class="col-md-3">
            <div class="card">
              <img class="card-img-top" src="https://www.turkhackteam.org/customavatars/avatar845887_2.gif" height="250" alt="Card image cap">
              <div class="card-body">
                   <h5 class="card-title text-white text-center"><?php echo $m["uye_adi"]; ?></h5> 
                    <hr color=white>
                    <p class="card-text grire text-center"><?php echo $m["uye_imza"]; ?></p><br>
                <p class="card-text text-center">Rütbe : Üstegmen</p> <br>
                 <small class="text-muted"><a href="#" class="text-center">Web Sitesini Ziyaret Edin...</a></small>
              </div>
            </div>
            </div>
            <div class="col-md-9">
              <h5 class="text-white"><?php echo $m["konu_baslik"]; ?></h5>
              <hr color=white>
              <p class="grire"><?php echo $m["konu_aciklama"]; ?></p>
              <small class="grire float-left"><i class="fas fa-eye"></i> <?php echo $m["konu_hit"]; ?></small>
              <small style="margin-left: 7px" class="grire float-left"><i class="fas fa-list-ul"></i> <?php echo $m["kategori_adi"]; ?></small>
              <span class="btn btn-secondary float-right">Beğen</span>
          </div>

 <?php
  
}


?>

<div class="col-md-12 mt-5">

<?php 

  if(!$sayfa){
    
    $sayfa =1;
    
  }
  
$mem = $db->prepare("select * from yorumlar inner join uyeler on uyeler.uye_adi=yorumlar.yorum_ekleyen where yorum_seo_konu=? order by yorum_id asc");
  $mem->execute(array($do));
  $mem->fetchALL(PDO::FETCH_ASSOC);
 $toplam = $mem->rowCount();
 $limit = 4;
 $goster = $sayfa*$limit-$limit;
 $sayfa_sayisi = ceil($toplam/$limit);
 $forlimit = 4;
 


$yorum = $db->prepare("select * from yorumlar inner join uyeler on uyeler.uye_adi=yorumlar.yorum_ekleyen where yorum_seo_konu=? order by yorum_id asc limit $goster, $limit");
 $yorum->execute(array($do));
 $b = $yorum->fetchALL(PDO::FETCH_ASSOC);
 $x = $yorum->rowCount();


 
   if($x){
     
     foreach($b as $lol){
      ?>
            <div class="card">
            <div class="card-header">
               <b class="text-white"><?php echo $lol["yorum_ekleyen"]; ?> | <em style="color: red">Yarbay</em></b>
            </div>
            <div class="card-body">
              <blockquote class="blockquote mb-0">
                <p class="text-white"><?php echo $lol["yorum_mesaj"]; ?></p>
                <footer class="blockquote-footer"><?php echo $lol["uye_imza"]; ?></footer>
              </blockquote>
            </div>
          </div><br>
     <?php
     
     
     
   }    
    
     
   }




?>

</div>

<?php

if($_POST){
  
  $isim  = $_SESSION["uye"];
  $mail  = $_SESSION["eposta"];
  $mesaj = $_POST["mesaj"];
  
  if(!$mesaj){
    
    echo '<script>alert("Gerekli Alanı Doldurun !!!")</script>';
      $url = $_SERVER["HTTP_REFERER"];
      header("refresh: 0; url=$url");
    
  }else {
    
    $yorum = $db->prepare("insert into yorumlar set 
    
          yorum_ekleyen=?,
          yorum_eposta=?,
          yorum_mesaj=?,
          yorum_seo_konu=?
    
    ");
    
    $ekle = $yorum->execute(array($isim,$mail,$mesaj,$do));
    
    if($ekle){
      $url = $_SERVER["HTTP_REFERER"];
      header("location:$url");
      
    }else {
      
      echo '<div class="hata">yorum eklenirken bir hata olustu</div>';
    }
  }
  
}else {
  
  if($_SESSION){
    
    ?>
  
         <div class="col-md-12 mt-5">
            <hr color=white>
            <h5 class="text-center text-white">Cevaplama Paneli</h5>
              <form action="" method="post">
                <div class="form-group">
                  <textarea name="mesaj" class="form-control" cols="30" rows="10"></textarea>
                </div>
                <div class="form-group text-center">
                   <input type="submit" name="ok"   value="Gönder" class="btn btn-success btn-lg"><br><br>
                 </div>
              </form>
          </div>
  <?php
    
    
  }
    
  
}

echo '<div class="col-sm-12">
<nav aria-label="...">
  <ul class="pagination justify-content-end ">';

       for ($i = $sayfa - $forlimit; $i<$sayfa + $forlimit +1; $i++) { 
          if ($i>0 && $i<=$sayfa_sayisi) {
            if ($i == $sayfa) {
              ?>
             <li class="page-item active" aria-current="page">
              <span class="page-link">
                <?php echo $i; ?> 
                <span class="sr-only">(current)</span>
              </span>
            </li>
            <?php 
            }else{
              ?>
            <li class="page-item"><a class="page-link" href="?sayfa=<?php echo $i; ?>"><?php echo $i; ?></a></li>
              <?php 
            }
          }
        }    


?>



 
 
    
  </ul>
</nav>


</div>


        </div>
      </div>
    </section>




<?php include 'inc/footer.php'; ?>



       <!--  <div class="col-md-12 mt-5">


            <div class="card">
            <div class="card-header">
               <b class="text-white">Mamilost</b>
            </div>
            <div class="card-body">
              <blockquote class="blockquote mb-0">
                <p class="text-white">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.</p>
                <footer class="blockquote-footer">Someone famous in <cite title="Source Title">Source Title</cite></footer>
              </blockquote>
            </div>
          </div><br>

 

          </div> -->
  #5  
Okunmamış 10 Haziran 2019, 14:51
Mamilost Adlı Üyenin Avatarı
WM Aracı
 
Üyelik Tarihi: 11 Mayıs 2019
Yaş / Cinsiyet: 18 / Erkek
Meslek: Öğrenci
Konum: Şanlıurfa
Ad, Soyad: Me... Ki...
Mesajlar: 5
Beğeniler: 1 / 7
Ticaret: 0, 0%
Alıntı:
mehmetmasa Adlı Üyeden Alıntı
Merhaba, ilk sayfalama için bunu kullanmıştım;

https://www.phpr.org/php-ile-sayfalama/

Veri tabanı işlemlerinde fazla ilerlemediyseniz (Salt PDO) kullanıyorsanız

https://github.com/tayfunerbilen/basicdb
Tayfun erbilen basicdb öneririm. Oop/Pdo mantığı ile her sorguda select, insert gibi sorgular yazmanıza gerek kalmaz, kolay yönetilir ve çok kolay sayfalama yapabilirsiniz.

PHP- Kodu:
// pagination example
$totalRecord $db->from('users')
                  ->
select('count(user_id) as total')
                  ->
total();
$pageLimit 4;
$pageParam 'page';
$pagination $db->pagination($totalRecord$pageLimit$pageParam);
$query $db->from('users')
            ->
orderby('user_id''DESC')
            ->
limit($pagination['start'], $pagination['limit'])
            ->
all(); 
Bütün sayfalama kodları bundan ibaret
hocam tam anlamadım ya :/
  #6  
Okunmamış 10 Haziran 2019, 22:01
Decimas Adlı Üyenin Avatarı
WM Aracı
 
Üyelik Tarihi: 19 Nisan 2015
Cinsiyet: Erkek
Meslek: Developer
Ad, Soyad: Ey... Er...
Mesajlar: 772
Beğeniler: 282 / 1
Ticaret: 0, 0%
PHP ve HTML içe içe yazılmaz. 2000'lerden kalma spagetti mantığı yerini MVVC gibi yapılara bıraksa artık? sayfalama ile sonra uğraşırsın.
no time for caution
Cevap Yaz Favorilerime Ekle

sosyal.market


Konuyu toplam 1 kişi okuyor. (0 üye ve 1 Ziyaretçi)
 
Seçenekler
Stil
Normal Normal

Geri Git   Forum > Yazılım


Yetkileriniz
Konu açma yetkiniz: Yok
Cevap Yazma Yetkiniz Yok
Eklenti yükleme yetkiniz: Yok
Mesajınızı değiştirme yetkiniz: Yok

BB code: Açık
İfadeler: Açık
[IMG] Kodları: Açık
HTML kodu: Kapalı




Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şu anki Zaman: 12:03.