SELECT * FROM cdr_table
WHERE OwnerUserID = '$_SESSION[user_id]'
AND GatewayID = $gateway_id
AND DATE(Dialed) = $date_sql
AND Dialed != 0
AND TIME(StartTime) BETWEEN '$start_time' AND '$end_time'
Ook zou ik sterk stel voor om alle variabelen die je in de SQL-code insluit te escapen met mysql_real_escape_string()
of gelijkwaardig, zelfs als je zeker weet dat er niets schadelijks in zit, gewoon om er een gewoonte van te maken.
Merk op dat een zoekopdracht als deze intrinsiek inefficiënt kan zijn, omdat het geen gebruik kan maken van indexen op de StartTime
kolom. Als er veel potentieel overeenkomende rijen in de tabel zijn, kan het een goed idee zijn om uw tabel te denormaliseren door een aparte kolom te maken die alleen opslaat. het tijdgedeelte van de StartTime
en het opzetten van een index erop (eventueel gecombineerd met andere relevante kolommen).