sejujurnya saya cukup lelah kalo harus benerin logic orang .. terutama kalau udah masuk namanya query. sebenarnya saya bukan bahas query (select bla bla bla).. tetapi bagaimana logic dia dalam memakai query tersebut. Perlu diketahui kebanyakan orang memakai cara langsung ketik query didalam parameter fungsinya yaitu mysql_query.. kebetulan yang dipake mysql dan umumnya kalau PHP pasti databasenya Mysql. Tidak menutup kemungkinan engine lain, tetapi Mysql selalu jadi pilihan!!
dalam tulisan ini, saya menganggap bahwa sudah terjadi koneksi data dan juga memilih database. Juga saya asumsikan bahwa yang dipake adalah mysql_query() bukan mysql_db_query() walaupun saya suka menggunakan yang no 2 karena bisa dipake kalau databasenya lebih dari 1!!
Sebenarnya dalam melakukan query di php, ada 1 fungsi lagi yang sepatutnya di masukkan.. yaitu perintah mysql_error()
kenapa mysql_error() penting!! karena mysql_error bertujuan untuk menemukan kesalahan logic kamu.. untuk mempersingkat. GW kurang setuju kalau pake logic seperti ini
$res=mysql_query("query yang sangat panjang sekali sampai gw males lanjutin");gw lebih suka pake logic seperti ini
$sql="query sangat panjang ampe gw mules";
$res=mysql_query($sql) or die(mysql_error()."<br>".$sql);
mode pertama sangat efektif.. tapi akan rugi saat kamu mendapati hal ini
mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in xxxatau
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in xxxapa yang bikin salah!! dimana yang bikin salah.. anggap aja query kamu sepanjang ini
select doc_idsayangnya ini pendek jadi kamu pasti menemukan salahnya dengan mudah,, kalau sepanjang ini
from
klinik_daftar d,
klinik_daftarpasien dp,
klinik_doctor dr,
klinik_docspecialis dsp
where
d.daf_id = dp.dafpat_dafid and
dp.dafpat_docid =dr.doc_id and
dr.doc_specId=dsp.spec_id and
dp.dafpat_type=1
$date1
and dsp.spec_id=".$obj[0]->spec_id."
order by d.daf_id limit 0,1
select *,u1.username operator, u2.username daftartrus mendadak kamu mendapatkan error.. dimana kamu akan perbaiki!!
from
jos_users u1,jos_users u2,
klinik_daftar d,
klinik_daftarpasien dp,
klinik_doctor dr,
klinik_docspecialis dsp,
`klinik_daftarpasienpay` dpp
where
d.daf_id = dp.dafpat_dafid and
dpp_daf=daf_id and
dp.dafpat_docid =dr.doc_id and
dr.doc_specId=dsp.spec_id and
dp.dafpat_type=1 and
dr.doc_id=".$doc[$i]->doc_id." and
dafpat_appBy=u1.id and
daf_userInp=u2.id and
$pay
$date1
dsp.spec_id=".$obj[0]->spec_id."
order by dp.dafpat_date asc
limit $page,$max
memanfaatkan logic yang agak panjang punyaku
$sql="query sangat panjang ampe gw mules";kamu akan dapat menemukan query yang salah plus querynya di tulis setelah error!!
$res=mysql_query($sql) or die(mysql_error()."<br>".$sql);
Logic yang ku angkat disini memang boros.. tetapi mudah bagi anda menemukan kesalahan.. jangan merasa menulis querynya di dalam fungsi akan mempermudah anda.. karena justru akan merugikan.. dan kalau rugi.. siapa yang akan rugi duluan.. tentu anda.. belum lagi urusan-urusn lain menanti anda..
Tidak ada komentar:
Posting Komentar