0

I am new in json. I generated jason data from mysql table using php and want to export the generated json to .xls or .csv format. I used the following php code to generate the json data: examexport.php

<?php
    include 'conn.php';

    $page = isset($_POST['page']) ? intval($_POST['page']) : 1;
    $rows = isset($_POST['rows']) ? intval($_POST['rows']) : 10;
    $semester = isset($_POST['semester']) ? 
    mysql_real_escape_string($_POST['semester']) : '';
    $entry = isset($_POST['entry']) ? mysql_real_escape_string($_POST['entry']) : '';
    $batch = isset($_POST['batch']) ? mysql_real_escape_string($_POST['batch']) : '';

    $offset = ($page-1)*$rows;

    $result = array();

$where = "semester like '$semester%' and entry like '$entry%' and batch like '$batch%'";
    $rs = mysql_query("select count(*) from ba_test where " . $where);
    $row = mysql_fetch_row($rs);
    $result["total"] = $row[0];

$rs = mysql_query("select * from ba_test where " . $where . " limit $offset,$rows");

$items = array();
while($row = mysql_fetch_object($rs)){
        array_push($items, $row);
    }
    $result["rows"] = $items;

    echo json_encode($result);
?>

Here in stackoverflow I got code for sending json to csv format but could not make it working. My php generated json:

 {"total":"6","rows":
 [{"id":"2","regd":"25","name":"Lalhmangaihsangi","class":"BA",
"rollno":"3","univ_roll":"UNVI573","univ_no":"MZU876","core":"Education",
"semester":"First","batch":"2014","subject":"Education",
"entry":"Second Internal Test","date":"2014-07-23",
"score":"55","fm":"100","remark":"She is guarded"}]}

Code for export to excel:

<input type="button" onclick="exportExcel()" value="Export to Excel " />
<script>                
  function exportExcel(){
    $('#dg').datagrid('load',{ //load data by semester/batch/entry
    semester: $('#semester').val(),
    batch: $('#batch').val(),
    entry: $('#entry').val(),
    document.location='excel/examexport.php'// How do I include entry/batch/ here?
 });
 }
</script>
1

1 Answer 1

0

Instead of creating a JSON and then convert it into a CSV file, you could directly create a string/text of the CSV with the values that you fetch from the database.

You can have a look at the format of the CSV from here and create your CSV string accordingly, http://en.wikipedia.org/wiki/Comma-separated_values#Example

After creating the string/text you can write it to a file. Then set the header content to make the file being saved from the browser,

header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=file.csv");
header("Pragma: no-cache");
header("Expires: 0");

Then return the response.

You can also refer this SO question for more clarification on the PHP to CSV creation, Create a CSV File for a user in PHP

Sign up to request clarification or add additional context in comments.

2 Comments

The problem is that I used json for displaying datagrid with search functionality and I want to export the search result into excel file.
You should refer this SO answer, stackoverflow.com/questions/20667418/…

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.