Skip to content
Advertisement

Exception has occurred flutter

I have a method to read the data from the database. The code is completely working, but there is a problem, it is if I run the code and there is no data in the database, I get the error:

E/flutter (29414): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: FormatException: Unexpected character (at character 1)
E/flutter (29414): No Data Found.
E/flutter (29414): ^


And my code:

Future<List<data>> FetchT() async {
    apiURL = 'https://*******.com/getList.php?C=' +
        gatName.toString();
    var response = await http.get(apiURL);
    if (response.statusCode == 200) {
      final items = json.decode(response.body).cast<Map<String, dynamic>>();
      List<data> listOfFruits = items.map<data>((json) {
        return data.fromJson(json);
      }).toList();

      return listOfFruits;
    } else {
      //throw Exception('Failed to load data from Server.');
    }
  }

PHP code:

<?php

include 'connt.php';
        $C= $_GET["C"];
$sql = "SELECT * FROM top WHERE C=? ORDER BY id DESC ";

$result = $con->query($sql);


$stmt = $con->prepare($sql); 

$stmt->bind_param("s",$C);

$stmt->execute();

$result = $stmt->get_result();



 
if ($result->num_rows >0) {
 
 
     while($row[] = $result->fetch_assoc()) {
     
     $item = $row;
     
     $json = json_encode($item, JSON_NUMERIC_CHECK);
     
     }
 
} else {
    echo "No Data Found.";
}
 echo $json;
$con->close();

?>

I previously searched the old topics here and tried all the topics and problems similar to mine, but I did not find a solution to my problem.

How can I solve this problem?

Advertisement

Answer

You didn’t specify the header code if no data is found.

You should change your php code to this:

<?php

include 'connt.php';
$C= $_GET["C"];
$sql = "SELECT * FROM top WHERE C=? ORDER BY id DESC ";

$result = $con->query($sql);


$stmt = $con->prepare($sql); 

$stmt->bind_param("s",$C);

$stmt->execute();

$result = $stmt->get_result();



 
if ($result->num_rows >0) {
 
 
     while($row[] = $result->fetch_assoc()) {
     
     $item = $row;
     
     $json = json_encode($item, JSON_NUMERIC_CHECK);
     
     }
 
} else {
    http_response_code(404);
    $json = json_encode(["error" => "No Data Found."]);
}
 echo $json;
$con->close();

?>
User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement