0
votes

I have fetch data from Ms Access database to PHP JSON Format. I have Pass date Parameter through in query. database datatype is date/time. Need date format in query mm/dd/yyyy.

I have give Result

ConnectedResource id #4{"status":0,"0":[]}

print_r($stmt) give

Result Resource id #4 and gone else statment.

<?php

    $reg = $_GET['reg'];
    $fdate = $_GET['fdate'];
    $tdate = $_GET['tdate'];
    $yid = $_GET['yid'];


    $sql = "select a.RegNo,c.Standard,b.RollNo,d.Division,b.Std_Name as StudentName,AttendanceDate,Attendance_Type,Remark 
                                         from (((Attendance_mas as a 
                                         inner join Std_Reg as b on a.RegNo = b.RegNo) 
                                         inner join StandardMaster as c on a.Standard = c.stdid) 
                                         inner join DivisionMaster as d on a.Division =d.DivisionID) 
                                         where a.RegNo= $reg and a.AttendanceDate between ($fdate) and 
                                         ($tdate1) and a.yearid = $yid Order by AttendanceDate desc";
    //$sql = "select * from Std_Reg";

    $stmt = odbc_exec($conn, $sql);

print_r($stmt);
$result = [];
do {
    while ($row = odbc_fetch_array($stmt)){
       $result[] = $row; 
    }
} while (odbc_next_result($stmt));

if(count($result)>0)
{
    $result1['status']=1;//"Login successfully";
    array_push($result1,$result);
}
else
{
     //$result[]="null";
    $result1['status']=0;//"Record not found";
    array_push($result1,$result);
}
odbc_free_result($stmt);
odbc_close($conn); //Close the connection first

echo json_encode($result1); //You will get the encoded array variable

?>
1
I don't understand the problem, do you look for a way to format your date or a way to pass your date to the query ?Hamza Abdaoui
$fdate and $tdate pass in query its need formate MM/dd/YYYY.raj

1 Answers

0
votes

I recommand using PDO PREPARED STATEMENT to bind parameters to your query:

$reg = $_GET['reg'];
$fdate = date("m/d/Y", strtotime($_GET['fdate']));//THis will format the date
$tdate = date("m/d/Y", strtotime($_GET['tdate']));
$yid = $_GET['yid'];

$sql = "select a.RegNo,c.Standard,b.RollNo,d.Division,b.Std_Name as StudentName,AttendanceDate,Attendance_Type,Remark 
                                     from (((Attendance_mas as a 
                                     inner join Std_Reg as b on a.RegNo = b.RegNo) 
                                     inner join StandardMaster as c on a.Standard = c.stdid) 
                                     inner join DivisionMaster as d on a.Division =d.DivisionID) 
                                     where a.RegNo= ? and a.AttendanceDate between (?) and 
                                     (?) and a.yearid = ? Order by AttendanceDate desc";

$res = odbc_prepare($conn, $sql);
if(!$res) die("could not prepare statement ".$sql);
$parameters = array($reg,$fdate,$tdate,$yid);
if(odbc_execute($res, $parameters)) {
   //Fetch the result
} else {
  // handle error
}