• 19-05-2023, 16:09:43
    #1
    Selamlar,
    Tasarlamış olduğumuz Intranet sisteminin back-end kısmını oturtmaya çalışıyorum.
    Aşağıdaki resimde görmüş olduğumuz chart sisteminde yapmak istediklerim;

    HTML üzerinde olan bölüm veritabanında bulunan tablodaki son veriyi çekecek, bu kısım basit bunu yapabiliyorum.
    Chart bölümünün verileri JS üzerinden düzenleniyor.
    Chart üzerinde son veri hariç geriye dönük son 5 veriyi göstermek istiyorum.
    Bu işlemi nasıl yapabilirim, mantığı kafamda kuramadım.

    Veritabanı yapım aşağıdaki şekildedir;

  • 19-05-2023, 16:12:19
    #2
    Son veriye kadar olan verileri alıyorsanız eğer aynı sorguyu birdaha yazın LIMIT 1 diyin desc ise asc diyin asc ise desc diyin. Böyle son veriyi almış olursunuz. Sonra bidaha yazın bu sorguyu ama limiti kaldırın where koşulu ile id!=id buraya da o almış olduğunuz son veriyi yazın. Böylelikle son veri hariç lımıt dahilinde olan verileri almış olacaksınız. Bilmiyorum açıklayıcı oldu mu ama mantığını anlatmak istedim.
  • 19-05-2023, 16:13:53
    #3
    ebubekirgns adlı üyeden alıntı: mesajı görüntüle
    Son veriye kadar olan verileri alıyorsanız eğer aynı sorguyu birdaha yazın LIMIT 1 diyin desc ise asc diyin asc ise desc diyin. Böyle son veriyi almış olursunuz. Sonra bidaha yazın bu sorguyu ama limiti kaldırın where koşulu ile id!=id buraya da o almış olduğunuz son veriyi yazın. Böylelikle son veri hariç lımıt dahilinde olan verileri almış olacaksınız. Bilmiyorum açıklayıcı oldu mu ama mantığını anlatmak istedim.
    Veritabanı sürekli güncellenecek, sabit kalmıyor.
    O yüzden son veriyi where sorgusu ile dışarı bırakmam için sabit bir ID olmayacak elimde sanırım.
  • 19-05-2023, 16:14:01
    #4
    Backend Developer
    js üzerinde zannedersem yine array şeklinde görüntülenme yapılıyor verileri siz php tarafından çağırın sonrasında php to js convert şeklinde array indisini dönüştürebilirsiniz.
    <script type='text/javascript'>
    <?php
    $php_array = array('abc','def','ghi');
    $js_array = json_encode($php_array);
    echo "var javascript_array = ". $js_array . ";\n";
    ?>
    </script>
    limit 6 şeklinde çekip array indisinde unset(0) yaparsanız sonuncu hariç 5 i çekmiş olursunuz
  • 19-05-2023, 16:19:07
    #5
    turansonkaya adlı üyeden alıntı: mesajı görüntüle
    Veritabanı sürekli güncellenecek, sabit kalmıyor.
    O yüzden son veriyi where sorgusu ile dışarı bırakmam için sabit bir ID olmayacak elimde sanırım.
    O zaman son veriyi de çekin unset ile onu arraydan silin hocam.
  • 19-05-2023, 16:19:15
    #6
    ebubekirgns adlı üyeden alıntı: mesajı görüntüle
    Son veriye kadar olan verileri alıyorsanız eğer aynı sorguyu birdaha yazın LIMIT 1 diyin desc ise asc diyin asc ise desc diyin. Böyle son veriyi almış olursunuz. Sonra bidaha yazın bu sorguyu ama limiti kaldırın where koşulu ile id!=id buraya da o almış olduğunuz son veriyi yazın. Böylelikle son veri hariç lımıt dahilinde olan verileri almış olacaksınız. Bilmiyorum açıklayıcı oldu mu ama mantığını anlatmak istedim.
    Ben anladım ama OP detay bilmiyorsa azcık karışık olmuş

    Hocam, veritabanınıza girin son veri en büyük ID ile giriyor. Önce bir sorgu ile son verinin ID'sini alacaksınız. Sürekli değişecektir son ID, o yüzden bunu sorgu ile almanız lazım. Select * SORT DESC LIMIT 1 gibi. Bunu result ile bir PHP değişkenine atayın ($son_id). Böylece elinizde son ID olacak. Grafiğe aktaracağınız sorguda da SELECT * id != $son_id derseniz son veri hariç hepsi geleecktir.
  • 19-05-2023, 16:29:52
    #7
    Sorgu şöyle olmalı: "select * from <tabloadi> order by <id> desc limit 1,5"