I am new to php development.
How to display multiple json objects fetched from database? So far I am getting single data. I need to display all inserted data in database in json format.
When I insert first data, I get a response like this. If I insert second data, it should display first and second data and so on in upload_details object but it displaying last inserted data only.
{"code":200,
"message":"The file FileUpload1444329638_li.jpg has been uploaded.",
"upload_details": {"desc":"hi",
"file_name":"abc.com\/FileUpload1444329637_li.jpg"}}
When I insert second data:
{"code":200,
"message":"The file FileUpload1444329638_li.jpg has been uploaded.",
"upload_details": {"desc":"h2",
"file_name":"abc.com\/FileUpload1444329638_li.jpg"}}
Here is my code:
<?php
include 'db_config.php'; //echo "hi";exit;
if($_POST['api_name']=="upload_file"){
if(!empty($_FILES["profile_pic"]["name"])){
$fileName = time().'_'.$_FILES["profile_pic"]["name"];
if (move_uploaded_file($_FILES["profile_pic"]["tmp_name"], "uploads/".$fileName)) {
$sql = "Insert into file_upload(`desc`,`file_name`) values ('".$_POST['desc']."','".$fileName."');";
if($conn->query($sql)){
$response= array('code'=>200,'message'=>"The file ". basename( $_FILES["profile_pic"]["name"]). " has been uploaded.",'upload_details'=>array("desc"=>$_POST['desc'],"file_name"=>$_SERVER['SERVER_NAME'].dirname($_SERVER['SCRIPT_NAME']).$fileName));
//print_r($response);exit;
}else{
$response= array('code'=>500,'message'=>"Error in uploading file");
}
} else {
$response= array('code'=>500,'message'=>"Error in uploading file");
}
}else{
$response= array('code'=>500,'message'=>"Error in uploading file");
}
}elseif ($_POST['api_name']=="get_files"){
$response['code']=200;
$response['file_lists'] = array();
$res = $conn->query("select * from file_upload");
while($row = $res->fetch_object()){
array_push($response['file_lists'],array('desc'=>$row- >desc,'file_path'=>$_SERVER['SERVER_NAME'].dirname($_SERVER['SCRIPT_NAME']).$row ->file_name));
}
}
echo json_encode($response);exit;
I expect to get response as data from all which is inserted in table, like:
{"code":200,
"message":"The file has been uploaded.",
"upload_details": {"desc":"hi",
" file_name":"abc.com\/FileUpload1444329637_li.jpg"},
{"desc":"hi2",
"file_name":"abc.com\/FileUpload1444329638_li.jpg"}
}
file_lists, but your output saysupload_details. Are you sure this code is actually the code executed? It seems to be okay, but your output is from another (maybe older) version of the code, so maybe you just modified the wrong file, or the upload of the PHP file to the server failed.