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 mehmetmasa

Cevap Yaz Favorilerime Ekle
Seçenekler Stil
Geri Git   Forum > > Programlama

PHP ile Sayfalama ?

  #1  
Okunmamış 10 Haziran 2019, 13:36
Mamilost Adlı Üyenin Avatarı
WM Aracı
 
Üyelik Tarihi: 11 Mayıs 2019
Yaş / Cinsiyet: 17 / Erkek
Meslek: Öğrenci
Konum: Şanlıurfa
Ad, Soyad: Me... Ki...
Mesajlar: 5
Beğeniler: 1 / 5
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: 20 / Erkek
Meslek: öğrenci
Ad, Soyad: Hü... Ek...
Mesajlar: 1.724
Beğeniler: 385 / 389
Ticaret: 18, 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: 21 / Erkek
Meslek: Yazılımcı
Konum: İzmir
Ad, Soyad: Me... Ma...
Mesajlar: 1.748
Beğeniler: 444 / 601
Ticaret: 32, 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: 17 / Erkek
Meslek: Öğrenci
Konum: Şanlıurfa
Ad, Soyad: Me... Ki...
Mesajlar: 5
Beğeniler: 1 / 5
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: 17 / Erkek
Meslek: Öğrenci
Konum: Şanlıurfa
Ad, Soyad: Me... Ki...
Mesajlar: 5
Beğeniler: 1 / 5
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
Yaş / Cinsiyet: 24 / Erkek
Meslek: Coder
Ad, Soyad: Ey... Er...
Mesajlar: 674
Beğeniler: 229 / 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


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

Geri Git   Forum > Programlama


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: 19:59.