I want to show machine maintenance table in my project ,currently i'm displaying all the data in single table, but now i want to display table in date wise .
SELECT * ,DATE_FORMAT(date,'%Y-%m-%d') as groupdate,SUM(operationtime) as usetime FROM `logusages` WHERE machineid = '$id' GROUP BY groupdate,empCode"
Output of Query =
Array
(
[workingLogs] => Array
(
[0] => stdClass Object
(
[id] => 13
[key] => 5BTIB4EoklT6dVfTUR4ezwb8T3xdeTAi
[machineid] => HIT232300
[empCode] => 1003
[employeeid] => Jon Doe
[date] => 2016-03-21 09:27:33
[time] => 11:22:00
[operationtime] => 1800
[groupdate] => 2016-03-21
[usetime] => 1800
)
[1] => stdClass Object
(
[id] => 14
[key] => 5BTIB4EoklT6dVfTUR4ezwb8T3xdeTAi
[machineid] => HIT232300
[empCode] => 1003
[employeeid] => Jon Doe
[date] => 2016-03-22 09:27:33
[time] => 11:22:00
[operationtime] => 1800
[groupdate] => 2016-03-22
[usetime] => 1800
)
[2] => stdClass Object
(
[id] => 8
[key] => 5BTIB4EoklT6dVfTUR4ezwb8T3xdeTAi
[machineid] => HIT232300
[empCode] => 1004
[employeeid] => Jon Doe
[date] => 2016-03-22 09:27:33
[time] => 11:22:00
[operationtime] => 1800
[groupdate] => 2016-03-22
[usetime] => 1800
)
[3] => stdClass Object
(
[id] => 15
[key] => 5BTIB4EoklT6dVfTUR4ezwb8T3xdeTAi
[machineid] => HIT232300
[empCode] => 1003
[employeeid] => Jon Doe
[date] => 2016-03-23 09:27:33
[time] => 11:22:00
[operationtime] => 1800
[groupdate] => 2016-03-23
[usetime] => 3600
)
[4] => stdClass Object
(
[id] => 9
[key] => 5BTIB4EoklT6dVfTUR4ezwb8T3xdeTAi
[machineid] => HIT232300
[empCode] => 1004
[employeeid] => Jon Doe
[date] => 2016-03-23 09:27:33
[time] => 11:22:00
[operationtime] => 1800
[groupdate] => 2016-03-23
[usetime] => 3600
)
[5] => stdClass Object
(
[id] => 12
[key] => 5BTIB4EoklT6dVfTUR4ezwb8T3xdeTAi
[machineid] => HIT232300
[empCode] => 1003
[employeeid] => Jon Doe
[date] => 2016-03-25 09:27:33
[time] => 11:22:00
[operationtime] => 1800
[groupdate] => 2016-03-25
[usetime] => 1800
)
[6] => stdClass Object
(
[id] => 11
[key] => 5BTIB4EoklT6dVfTUR4ezwb8T3xdeTAi
[machineid] => HIT232300
[empCode] => 1004
[employeeid] => Jon Doe
[date] => 2016-03-25 09:27:33
[time] => 11:22:00
[operationtime] => 1800
[groupdate] => 2016-03-25
[usetime] => 1800
)
)
)
I'm trying to handle using this code using in_array but that code not working
foreach ($workingLogs as $key => $date) {
if(in_array($date['groupdate']) = $date['groupdate']){
$datewise[$date['groupdate']]=$date;
}else{
$datewise[]=$date;
}
Currently my table look like ..
I want look like.
Please help
You have a mistake in your code... You have to check the if statement with "==". Also, the in_array only returns a boolean. You can't compare it with a non boolean value
foreach ($workingLogs as $key => $date) {
if(array_key_exists('groupdate', $date) ){
$datewise[$date['groupdate']]=$date;
}else{
$datewise[]=$date;
}
}
You can do it simply using PHP code like this:
PSUEDO CODE:
$arr = array();
while ($row = fetch results) {
$elem = array();
$elem['id'] = $row->id;
$elem['key'] = $row->key;
$elem['machineid'] = $row->machineid;
$elem['empCode'] = $row->empCode;
$elem['employeeid'] = $row->employeeid;
$elem['date'] = $row->date;
$elem['time'] = $row->time;
$elem['operationtime'] = $row->operationtime;
$elem['groupdate'] = $row->groupdate;
$elem['usetime'] = $row->usetime;
$arr['groupdate'][] = $elem;
}
And while displaying results, use groupdate
as key and other fields as values like this:
if (! empty($arr)) {
foreach ($arr as $groupdate => $elem) {
echo $groupdate;
if (! empty($elem)) {
foreach ($elem as $field => $val) {
// Show records under this groupdate
}
}
}
}
<?php
include_once('connect.php');
{
error_reporting( error_reporting() & ~E_NOTICE );
$querys="select date from logusages";
$result=mysqli_query($con,$querys);
while(($row = mysqli_fetch_assoc($result))){
$cart = $row;
}
// mysqli_free_result($result);
}
$select="select * from logusages";
$results = mysqli_query($con, $select);
if(mysqli_num_rows ($results) > 0)
{
$cart = $row;
while(list($id,$name,$date) = mysqli_fetch_array($results, MYSQLI_NUM))
{
$j=1;
$cart[$date][] = array(
'id' => $id,
'name' => $name);
$j++;
}
echo json_encode($cart). "
";
}
?>
I just passed id and name inside the date, you can pass as per your row values.
Use this
$newArray = array();
foreach ($workingLogs as $key => $date)
{
$datetime = date("Y-m-d",$date['groupdate']);
if(isset($newArray[$datetime]))
{
$newArray[$datetime][] = $date;
}
else
{
$newArray[$datetime] = $date;
}
}