Tolong pilih kategori sesuai, jenis posting (pertanyaan atau bukan) dan sertakan tag/topik yang sesuai misal komputer, php, mysql, dll.
Promosi atau posting tidak pada tempatnya akan kami hapus.
Klik link berikut untuk informasi cara menyisipkan kode program supaya tampil rapi dan terformat dengan baik di diskusiweb.com: http://www.diskusiweb.com/discussion/50415/cara-menyisipkan-kode-program-di-diskusiweb-com

Baca cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

pengambilan data dari database dengan kondisi perbandingan

master sekalian, saya punya masalh dalam pencarian data di database, database saya seperti gambar di bawah
database

saya mau penampilan di nya waktu di Where nya cmn nampil berdasarkan yang saya mau, contoh saya mau menampilkan data yang tahun 2017, berarti yg akan muncul yaitu yang id 5 s/d 13 karena tahun 2017 itu berada di antara 2016 s/d 2020

sedangkan yang saya coba perintah

SELECT * FROM `ptkp` WHERE `awal`>=2015 and `akhir`>=2015

tidak dapat menampilkan sesuai yg saya mau

bisa tolong master, soalnya sdh nyari2 di googling, tp blm dapat penyelesaian nya juga...

tq

Comments

  • cuma mau nanya ...

    `awal`>=2015 and `akhir`>=2015

    kalo elo baca tulisan itu ... bacanya gimana ?
  • kalau saya buat seperti itu, berarti kondisi kedua nya harus berada di atas 2015 baru bernilai benar, sudah saya coba beberpa kondisi juga master @labalaba cmn hasil nihil juga
  • edited December 2017
    kalo menurut logika elo, harusnya kondisi yg bener ditulis gimana ?

    abaikan dulu hasil yg ndak keluar.


    btw, type field awal dan akhir yg elo pake apa ?
  • edited December 2017
    Dear @k4zuk1,

    Coba query seperti ini:
    SELECT * FROM `ptkp` WHERE `awal` <= XXX and `akhir` >= XXX

    Dimana XXX itu adalah tahun yang kamu cari.
  • Klo biasaa nya sih dengan perbandingan 2 buah tgl contoh saya buat dari thn 2015 s.d 2020 saya tinggal buat
    'awal`>=2015 and `akhir`<=2020

    Tp kondisi saya sekarang cmn 1 tahun aja contoh 2015
    Jd ptkp yg di ambil 2015 itu berada diantar awal dan akhir

    Gt logika saya master...
    Sory klo salah logika nya
  • ya ?
    masih belum diketik lengkap kah ?
  • Yg saya tulis da benar master, cmn ada 1 perbandingan nya yaitu 2015 saja
  • edited December 2017
    'awal`>=2015 and `akhir`

    kan itu belum lengkap.

    elo juga belum jawab pertanyaan gw : type field nya apa ?
    value nya elo dapatkan dari mana ? dgn proses apa ?

    kalo string, bisa jadi masalah.
    baik buat field nya sendiri, maupun value yg mau dibandingkan.

    <?php
    $a = ' 2017 '; // ada spasi di depan

    if($a < '2016') { echo 'TRUE'; }
    else { echo 'FALSE'; }
    ?>

    TRUE


    dan pengujian kaya gitu, cukup pake BETWEEN

    WHERE $value BETWEEN awal AND akhir
  • Klo biasaa nya sih dengan perbandingan 2 buah tgl contoh saya buat dari thn 2015 s.d 2020 saya tinggal buat
    'awal`>=2015 and `akhir`
    Kalau cara biasa kamu sudah tidak bisa, sudah waktunya mencairkan kepala sedikit dan mencari solusi lain. Saya rasa itu sebabnya kamu posting pertanyaan ke forum ini.
    saya mau penampilan di nya waktu di Where nya cmn nampil berdasarkan yang saya mau, contoh saya mau menampilkan data yang tahun 2017, berarti yg akan muncul yaitu yang id 5 s/d 13 karena tahun 2017 itu berada di antara 2016 s/d 2020
    Ini adalah statement yang kamu buat sendiri. Dari statement ini, bila ditranslasikan ke SQL code, sewajarnya adalah menggunakan perbandingan in between, either menggunakan
    X1 <= XX AND X2 >= XX
    ataupun keyword BETWEEN.

    Kalau menggunakan metode kamu, contoh dalam database kamu, ada data awal 2015 dan akhir 2016, untuk mencari data tahun 2017, query kamu akan menjadi
    ..... WHERE 'awal' >= 2017 AND 'akhir' >= 2017
    Query ini akan mengembalikan juga data dgn awal 2015 dan akhir 2016, yang seharusnya tidak ada, karena 2017 tidak berada diantara 2015 dan 2016. Paham logikanya?

    Kalau kamu sudah biasa menggunakan cara kamu di banyak sistem, saya sarankan untuk memperbaiki query di sistem lain, karena kamu menghasilkan sistem yg buggy.

    Cheers

  • awal`>=2015 and `akhir`

    kan itu belum lengkap.
    Klo itu awal>=2015 and akhir

    elo juga belum jawab pertanyaan gw : type field nya apa ?
    value nya elo dapatkan dari mana ? dgn proses apa ?
    Type field nya saya pakai int

    Untuk value 2015 saya ketik sendiri karena saya coba langsung dari perintah mysql nya, blm saya coba jalan kan dari php

    Kalau menggunaman between sdh perna saya lakai waktu cari perbandingan 2 buah tanggal dengan kondisi perbandingan ada 2 buah tanggal tp filter nya di 1 field dan itu bisa jalan

    Sedangkan kondisi saya sekarang di 2 field dengan 1 perbandingan

  • ini : awal`>=2015 and `akhir`
    sudah pasti salah, ndak ada penulisan kondisi kaya gitu


    ini : `awal`>=2015 and `akhir`>=2015

    kondisi yg bisa memenuhi syarat elo itu hanya jika : awal & akhir keduanya LEBIH BESAR ATAU SAMA DENGAN 2015

    yg memenuhi syarat itu ya data elo dgn ID : 5,7,8,9,10,11,12,13
    karena nilai awal 2016, akhir 2020

    `awal`>=2015 and `akhir`>=2015
    (`awal`>=2015) and (`akhir`>=2015)
    (2016 >= 2015) and (2020 >=2015)
    (TRUE) and (TRUE) = TRUE

    kalo data yg 14,15 tidak memenuhi.
    nilai awal 2000, akhir 2016

    `awal`>=2015 and `akhir`>=2015
    (`awal`>=2015) and (`akhir`>=2015)
    (2000 >= 2015) and (2016 >=2015)
    (FALSE) and (TRUE) = FALSE



    tapi kalimat di post awal elo :
    "contoh saya mau menampilkan data yang tahun 2017"

    menampilkan 2017, tapi yg elo coba 2015 ?

    tapi kalo pake kondisi yg elo tulis, ya pasti salah.

    data 5,7,8,9,10,11,12,13
    `awal`>=2017 and `akhir`>=2017
    (`awal`>=2017) and (`akhir`>=2017)
    (2016 >= 2017) and (2020 >=2017)
    (FALSE) and (TRUE) = FALSE

    data 14,15
    `awal`>=2017 and `akhir`>=2017
    (`awal`>=2017) and (`akhir`>=2017)
    (2000 >= 2017) and (2016 >=2017)
    (FALSE) and (FALSE) = FALSE

    ya ndak bakal ada data yg terpilih.



    pake BETWEEN aja napa ?
    itu yg gw tunjukin sudah dicoba ?

    WHERE $value BETWEEN awal AND akhir
    WHERE 2015 BETWEEN awal AND akhir
    WHERE 2017 BETWEEN awal AND akhir



    kalo hasil masih salah juga ...
    [1] posting DDL table elo berikut sample data secukupnya buat testing
    [2] posting kode elo lebih lengkap, karena gw lebih yakin bukan salah query, tapi salah di tempat lain
  • Tq master @labalaba nanti saya coba kembali

    Sory ga gitu pandai menjelaskan masalah...
  • master @labalaba pakai BETWEEN sudah jalan rupanya, tq master
Sign In or Register to comment.