• 22-03-2016, 15:45:16
    #1
    Arkadaşlar merhaba, bir konuda fikir almak istiyorum. Aradığım konu ile ilgili kaynak bulamadım maalesef.

    Kısaca şöyle anlatayım; bir haber sitesi hazırlıyorum. Ortada slider var, son 20 haberi çekiyor. Onun altındada ayrı bir bölüm başlıyor aşşağıya doğru buradada haberler 3'lü sütunlar halinde devam etmesini istiyorum.

    Yani aşşağıda 21-22-23 numaralı ID'li haberler devam edecek. Slider'daki haberlerin devamı alttaki normal bölümde aşşağı doğru devam edecek yani.

    <div id="slides" style="margin-top:15px;">
    <?php
    $strSQL = "SELECT * FROM haber ORDER BY ID DESC";
    $result = mysql_query($strSQL);
    while ($row = mysql_fetch_object($result)): ?> 
    <div class="slide-wrapper">
    <img src="img/<?php echo $row->Resim;?>" />
    <div class="slide-desc">
    <?php echo $row->Baslik;?>
    </div> 
    <div class="clear"></div>
    </div>
    <?php endwhile; ?> 
    </div>
    Yani bundan sonra olacak yapacağım sorguda, haberlerin ID olarak nerden kaldıysa aşşağıya düşmesini istiyorum. Son 20 haberin devamındaki 21-22-23... şeklindeki haberleri listelemek istiyorum.

    Şimdiden fikir verecek, yardım edecek herkese çok teşekkür ederim.

    Saygılarımla
  • 22-03-2016, 16:46:30
    #2
    <div id="slides" style="margin-top:15px;">
    **<?php
    $strSQL = "SELECT * FROM haber ORDER BY ID DESC LIMIT 20";
    $result = mysql_query($strSQL);
    $row = mysql_fetch_object($result);
    *
    if( $row != false):
    do{ $lastId = $row->ID; ?>
    **<div class="slide-wrapper"> <img src="img/<?php echo $row->Resim;?>" />
    ****<div class="slide-desc"> <?php echo $row->Baslik;?> </div>
    ****<div class="clear"></div>
    **</div>
    **<?php }while ($row = mysql_fetch_object($result)); endif; 
    
    $devamSQL = sprintf("SELECT * FROM haber WHERE ID < %d ORDER BY ID DESC ", intval($lastId));
    $result2 = mysql_query($devamSQL );
    $row2 = mysql_fetch_object($result2 ); //bu row2 senin istediğin devam haberlerini içerir. loop olcak.
    
    ?>
    </div>
  • 23-03-2016, 01:42:31
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    hocam aşağıdaki kod standart olarak senin haber tablondakı herşeyi listeler

    SELECT * FROM haber ORDER BY ID DESC
    ama sonuna LIMIT eklersen hangi aralığiı listeleyeceğini sen belirlersin. Mesela bu kod ilk 20 haberi listeler.

    SELECT * FROM haber ORDER BY ID DESC LIMIT 0,20
    bu kod ise 20 - 23 arasını listeler

    SELECT * FROM haber ORDER BY ID DESC LIMIT 20,23
    kendine göre ayarlarsın.
  • 23-03-2016, 08:41:37
    #4
    Defalarca sorgu yapmaktansa bir defa sorgu yapıp array içine alırsanız eğer sonrasında istediğiniz şekilde istediğiniz kadar kullanabilirsiniz. Örnek uygulama aşagıdaki gibidir.

    $strSQL = "SELECT * FROM haber ORDER BY ID DESC LIMIT 23";
    $result = mysql_query($strSQL);
    while($row = mysql_fetch_assoc($result)){
    
    $haberler[] = $row; //şeklinde tüm gelen 23 veriyi haberler array içine atamasını gerçekleştirdik.
    
    }
    
    
    //Bunları hepsini çekmek için foreach kullanılır ama bize lazım olan kadar çekceğimiz için for yeterlidir.
    
    for($i=0; $i<20; $i++){
    echo $haberler[$i];
    }
    
    for($i=20; $i<23; $i++){
    echo $haberler[$i];
    }
    şeklinde deneyebilirsin.
  • 23-03-2016, 16:41:58
    #5
    Hepinize tek tek teşekkür ediyorum.

    Elinize kolunuza sağlık.