parse and fetch data in flutter

Viewed 21

I found a code that works well. I want to use it in a project but I can't. I think the problem is at the level of recovery and then their conversion according to the initial project

this is the array in the source code

 loadPreviousEvents() {
    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"}
      ]
    };
  }

here is how I tried to do the same by retrieving the data in my database

  void getData() async {
    var url = 'http://xxxxxxxxx/getEvents.php';
    var res = await http.get(Uri.parse(url));
    var response = json.decode(res.body);

    var mySelectedEvents =
        groupBy(response, (Map obj) => obj['date']).map((k, v) => MapEntry(
            k,
            v.map((item) {
              item.remove('date');
              return item;
            }).toList()));
    print(mySelectedEvents);
  
  }

  List _listOfDayEvents(DateTime dateTime) {
    if (mySelectedEvents[DateFormat('yyyy-MM-dd').format(dateTime)] != null) {
      return mySelectedEvents[DateFormat('yyyy-MM-dd').format(dateTime)]!;
    } else {
      return [];
    }
  }

here are my 2 tables

INSERT INTO `event_date` (`id`, `date`, `selectdate`) VALUES
(4, '2022-09-17', '2022-09-17 22:13:04.508644'),
(5, '2022-09-17', '2022-09-17 23:19:05.885897'),
(6, '2022-09-17', '2022-09-17 23:19:05.885897'),
(7, '2022-09-20', '2022-09-20 00:00:00.000Z'),
(8, '2022-09-17', '2022-09-17 23:20:46.357121');

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);

this ma PHP code

$table = "event_date";
$table2 = "event_list";


  $db_data = array();
  $sql = "SELECT *
         FROM $table D
              ,$table2 E
         WHERE D.id = E.id_event_date
    ";
    $result = $conn->query($sql);
    
    if($result->num_rows >0){
        while($rows = $result->fetch_assoc()){
            $db_data[] = $rows;
        }//fin while
         //Retourn toutes les reponses en json
         echo json_encode(utf8ize($db_data));
    }else{
        echo "erreur";  
    }
0 Answers
Related