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.
pengambilan data dari database dengan kondisi perbandingan
master sekalian, saya punya masalh dalam pencarian data di database, database saya seperti gambar di bawah

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
`awal`>=2015 and `akhir`>=2015
kalo elo baca tulisan itu ... bacanya gimana ?
abaikan dulu hasil yg ndak keluar.
btw, type field awal dan akhir yg elo pake apa ?
Coba query seperti ini:
SELECT * FROM `ptkp` WHERE `awal` <= XXX and `akhir` >= XXX
Dimana XXX itu adalah tahun yang kamu cari.
'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
masih belum diketik lengkap kah ?
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
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
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
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
Sory ga gitu pandai menjelaskan masalah...