• 17-11-2015, 14:49:51
    #1
    Üyeliği durduruldu
    Merhabalar,

    Kodlar aşağıdaki gibi;

    her sayfada 25 kayıtı random olarak getiriyorum burda sıkıntı yok fakat
    atıyorum il sayfada Ali veli geldi, 5. sayfaya geçtiğimde random çektiği için Ali veliyi görmemem gerekli.

    <?php
                           
                            require_once ('Pager/Pager.php');
    
                                                $sql = $db->prepare("SELECT count(*) AS total FROM uyeler");
                                                $sql->execute();
                                                $pgr=$sql->fetch(PDO::FETCH_ASSOC);
                                                $totalItems = $pgr['total'];
    
                                                //*** Pager ayarları ***//
    
                                            $pager_options = array(
                                            'mode'       => 'Sliding', // Gelişmiş sayfalama metodu "Jumping" veya "Sliding"
                                            'perPage'    => 25, // her sayfada 5 kayıt
                                            'delta'      => 5,
                                                'append' => true,
                                                //'separator' => ' | ',
                                                'clearIfVoid' => false,
                                                'urlVar' => 'entrant',
                                                'useSessions' => true,
                                                'closeSession' => true,
                                                //'mode'  => 'Sliding',    //try switching modes
                                                'mode'  => 'Sliding',
                                            'totalItems' => $totalItems, // toplam kayıt sayısı
                                            );
                                             
                                            $pager = Pager::factory($pager_options);
                                             
                                            list($from, $to) = $pager->getOffsetByPageId();
    
                                            $from = $from - 1;
                                            $perPage = $pager_options['perPage'];
    
    
                                        
    
    
    
    
                                        $sql4 = $db->prepare("SELECT * FROM uyeler  order by RAND() asc LIMIT $from , $perPage");
                                        $sql4->execute();
    
                                        
                                                                         
                                        while($model=$sql4->fetch(PDO::FETCH_ASSOC)) {
                                        $sqlr = $db->prepare("SELECT * FROM uyeresim WHERE ModelID=$model[ModelID]");
    								    $sqlr->execute();
    								    $resim=$sqlr->fetch(PDO::FETCH_ASSOC);
    
    								    $sql12 = $db->prepare("SELECT * FROM sehirler WHERE SehirID=$model[ModelSehirID]");
    								    $sql12->execute();
    								    $yer=$sql12->fetch(PDO::FETCH_ASSOC);
    
                                        ?>
  • 17-11-2015, 16:21:46
    #2
    Bu aslında bir noktada random mantığına aykırı. En basit yöntemle; ilk sayfada görüntülenen verilerin id'sini bir şekilde session ya da cookie'de saklayarak, sonraki sayfalarda görüntülenmesini engelleyebilirsiniz. Ama bu da bir süre sonra yetersiz kalacak, çeşitli mantıksal hataların doğmasına neden olacaktır.
  • 17-11-2015, 16:23:47
    #3
    msgr adlı üyeden alıntı: mesajı görüntüle
    Bu aslında bir noktada random mantığına aykırı. En basit yöntemle; ilk sayfada görüntülenen verilerin id'sini bir şekilde session ya da cookie'de saklayarak, sonraki sayfalarda görüntülenmesini engelleyebilirsiniz. Ama bu da bir süre sonra yetersiz kalacak, çeşitli mantıksal hataların doğmasına neden olacaktır.
    yada ilk sayfada tüm verileri random şekilde bir diziye atıp session ile taşıyarak diğer sayfalarda gösterime devam edilebilir ancak veri boyutu arttıkça performans kalmaz ve saçma bir yöntem olur.
  • 17-11-2015, 16:44:41
    #4
    Eğer bu rastgele sıralama kişiye özgü olacak session ve cokie ler sıralamayı hafıza tutabilirsin.
  • 17-11-2015, 16:50:10
    #5
    Üyeliği durduruldu
    Gösterilenleri saklayıp tekrar geldiğinde eşleştirin. Görünmüşse daha önce bir sonraki kayda atlattırın.

    Ayrıca tablo sorgusundan da atlatabilirsiniz. WHERE NOT ile her bir gösterileni seçmemesini sağlayabilirsiniz.
  • 17-11-2015, 17:24:49
    #6
    Üyeliği durduruldu
    susmus adlı üyeden alıntı: mesajı görüntüle
    Eğer bu rastgele sıralama kişiye özgü olacak session ve cokie ler sıralamayı hafıza tutabilirsin.
    upmaster adlı üyeden alıntı: mesajı görüntüle
    Gösterilenleri saklayıp tekrar geldiğinde eşleştirin. Görünmüşse daha önce bir sonraki kayda atlattırın.

    Ayrıca tablo sorgusundan da atlatabilirsiniz. WHERE NOT ile her bir gösterileni seçmemesini sağlayabilirsiniz.
    rica etsem kod kısmında editlermisiniz? nasıl yapıldıgını vs görüp öğrenmiş oluruz.gidemiyorum daha fazla.
    bu sorunla karsılasan diğer arkadaşlarada yardımcı olmuş oluruz.
  • 17-11-2015, 20:34:48
    #7
    Üyeliği durduruldu
    güncel.
  • 18-11-2015, 10:28:36
    #8
    sql DISTING kullanımını araştırın
  • 18-11-2015, 11:15:33
    #9
    Üyeliği durduruldu
    halil2233 adlı üyeden alıntı: mesajı görüntüle
    sql DISTING kullanımını araştırın
    distinct ilk sayfa için getirmez ama diğer sayfalarda geçişlerde işe yaramaz. aynı kayıtı görebiliyorum.sayfa geçişi oldugu için.