Reputation: 69
I am echoing my array but it gives undesired output, i need my output to be having brackets which contain data inside the square brackets of an array . Please help me to fix this
Desired Output : {"error":false,"user":[{"id":1,"name":"Maurice Obraenne","mobile":"0785984505","sutdentId":"Muberangango Joseph"}]}
undesired output i get is the following without bracket inside square brace,and without identification names of records : {"error":false,"user":[1,"Maurice Obraenne","0785984505","Muberangango Joseph"]}
My code:
$stmt->bind_param("i", $mobile);
if ($stmt->execute()) {
$result = $stmt->get_result();
$usersArr = array();
while ($user = $result->fetch_assoc()){
$usersArr[] = $user['id'];
$usersArr[] = $user['name'];
$usersArr[] = $user['mobile'];
$usersArr[] = $user['sutdentId'];
$usersArr[] = $user['user_id'];
$usersArr[] = $user['full_name'];
$usersArr[] = $user['school'];
$usersArr[] = $user['level'];
$usersArr[] = $user['year'];
$usersArr[] = base64_encode($user['photo']);
$usersArr[] = $user['busId'];
$usersArr[] = $user['plate_no'];
$usersArr[] = $user['DriverId'];
$usersArr[] = $user['driverphone_number'];
$usersArr[] = $user['driver_fullname'];
}
$stmt->close();
// echo json_encode($usersArr);
return $usersArr;
} else {
return NULL;
}
Upvotes: 0
Views: 826
Reputation: 40653
You're just making your life harder:
$stmt->bind_param("i", $mobile);
if ($stmt->execute()) {
$result = $stmt->get_result();
$usersArr = $result->fetch_all(MYSQLI_ASSOC);
$stmt->close();
$result->free(); //Because why not?
return array_map(function ($user) {
$user['photo'] = base64_encode($user['photo']);
return $user;
}, $usersArr;);
} else {
return NULL;
}
Upvotes: 0
Reputation: 445
You desired output shows that each user will be in an array, so you have to store each user in an array.
Use this code:
while ($user = $result->fetch_assoc()){
$temp = array();
$temp = $user;
$temp['photo'] = base64_encode($user['photo']);
$usersArr[] = $temp;
}
then you can use this array to store users data at user
key of an array
like this:
$final['error'] = '';
$final['user'] = $usersArr;
Upvotes: 0
Reputation: 6565
You can do that like this:
while ($user = $result->fetch_assoc()){
$usersArr['id'] = $user['id'];
$usersArr['name'] = $user['name'];
$usersArr['mobile'] = $user['mobile'];
$usersArr['studentId'] = $user['sutdentId'];
$usersArr['user_id'] = $user['user_id'];
$usersArr['full_name'] = $user['full_name'];
$usersArr['school'] = $user['school'];
$usersArr['level'] = $user['level'];
$usersArr['year'] = $user['year'];
$usersArr['photo'] = base64_encode($user['photo']);
$usersArr['busId'] = $user['busId'];
$usersArr['plate_no'] = $user['plate_no'];
$usersArr['DriverId'] = $user['DriverId'];
$usersArr['driverphone_number'] = $user['driverphone_number'];
$usersArr['driver_fullname'] = $user['driver_fullname'];
}
return json_encode($usersArr);
Upvotes: 1