Convert to array from database

Viewed 35

From my database, I want to get this array

mySelectedEvents = {
  "2022-09-13": [
    {"eventDescp": "11", "eventTitle": "111"},
    {"eventDescp": "22", "eventTitle": "22"}
  ],
  "2022-09-30": [
    {"eventDescp": "22", "eventTitle": "22"}
  ],
  "2022-09-20": [
    {"eventTitle": "ss", "eventDescp": "ss"}
  ]
};

These are my tables :

INSERT INTO `event_date` (`id`, `date`) VALUES
(1, '2022-09-13'),
(2, '2022-09-30'),
(3, '2022-09-20');

INSERT INTO `event_list` (`id`, `descript`, `title`, `id_event_date`) VALUES
(1, '11', '111', 1),
(2, '22', '22', 1),
(3, '22', '22', 2),
(4, 'ss', 'ss', 3);

[{"id":"1","date":"2022-09-13","descript":"11","title":"111","id_event_date":"1"},{"id":"2","date":"2022-09-13","descript":"22","title":"22","id_event_date":"1"},{"id":"3","date":"2022-09-30","descript":"22","title":"22","id_event_date":"2"},{"id":"4","date":"2022-09-20","descript":"ss","title":"ss","id_event_date":"3"}]

I tried this

Future<dynamic> getData() async {
    var url = 'http://xxxxxxxxxx/getEvents.php';
    var res = await http.get(Uri.parse(url));
    var response = json.decode(res.body);


    Map<String, dynamic> mySelectedEvents = Map.fromIterable(response,
        key: (item) => item['date'],
        value: (item) =>
            {'eventDescp': item['descript'], 'eventTitle': item['title']});
            
    print(mySelectedEvents);
    return mySelectedEvents;
  }
1 Answers

I think the code that you have written is good, are you sure that your database does have more than two elements?

Related