Prajila V P
Prajila V P

Reputation: 5327

How can I group days depending on the database field value in php

I am keeping the working time of companies. How can I group days depending on the working time?

enter image description here

I want output like

Sunday, Saturday 00:00:00 to  00:00:00
Monday, Tuesday, Wednesday, Thursday 10:00:00 to 18:00:00
Friday 10:00:00 to 13:00:00

Query output:

Array
(
[0] => Array
    (
        [id] => 8
        [member_id] => 926
        [day] => sunday
        [from_time] => 08:00:00
        [to_time] => 16:00:00
        [created_id] => 926
        [created] => 2013-12-13 08:33:03
    )

[1] => Array
    (
        [id] => 9
        [member_id] => 926
        [day] => monday
        [from_time] => 10:00:00
        [to_time] => 18:00:00
        [created_id] => 926
        [created] => 2013-12-13 08:33:03
    )

[2] => Array
    (
        [id] => 10
        [member_id] => 926
        [day] => tuesday
        [from_time] => 00:00:00
        [to_time] => 00:00:00
        [created_id] => 926
        [created] => 2013-12-13 08:33:03
    )

[3] => Array
    (
        [id] => 11
        [member_id] => 926
        [day] => wednesday
        [from_time] => 00:00:00
        [to_time] => 00:00:00
        [created_id] => 926
        [created] => 2013-12-13 08:33:03
    )

[4] => Array
    (
        [id] => 12
        [member_id] => 926
        [day] => thursday
        [from_time] => 00:00:00
        [to_time] => 00:00:00
        [created_id] => 926
        [created] => 2013-12-13 08:33:03
    )

[5] => Array
    (
        [id] => 13
        [member_id] => 926
        [day] => friday
        [from_time] => 00:00:00
        [to_time] => 00:00:00
        [created_id] => 926
        [created] => 2013-12-13 08:33:04
    )

[6] => Array
    (
        [id] => 14
        [member_id] => 926
        [day] => saturday
        [from_time] => 00:00:00
        [to_time] => 00:00:00
        [created_id] => 926
        [created] => 2013-12-13 08:33:04
    )

)

How can I do this?

Upvotes: 0

Views: 73

Answers (2)

Aditya
Aditya

Reputation: 2301

You can try like this,

SELECT 
GROUP_CONCAT(DAY) AS 'DAY', 
FROM_TIME AS 'IN'
TO_TIME AS 'OUT'

FROM TABLE_NAME

GROUP BY FROM_TIME, TO_TIME 
ORDER BY DAY 

Upvotes: 1

Barmar
Barmar

Reputation: 780984

SELECT GROUP_CONCAT(day) days, CONCAT(from_time, ' to ', to_time) times
FROM yourTable
GROUP BY from_time, to_time

Upvotes: 4

Related Questions