0

在将数据从 JSON 转换为 CSV 格式时,我在 CSV 文件中得到如下输出。有什么可能的建议吗?

0,"","","0","0","0","0","","","0","0","","","","0","0","0","0","0","0","","","","","","0","0","0","0","","0","","","0","0","0","","0","0","0","0","0","0","0","","","","","","","","","","","","","","","","","","","","","","","","","","","0","0","","","","","","","","0","0",","",""

我的功能

function csv($form){


$fp = fopen($form, "w");

$sql = "SELECT * FROM log AS jon 
                    LEFT JOIN r as rec ON jon.num=rec.num
                    LEFT JOIN b as bio ON jon.num=bio.num   
                    LEFT JOIN p as po ON jon.num=po.num
                    LEFT JOIN re as recur ON jon.num=recur.num
                    LEFT JOIN s as spir ON jon.num=spir.num
                    LEFT JOIN te as ten ON jon.num=ten.num
                    LEFT JOIN tt as ttai ON jon.num=ttai.num
                    LEFT JOIN vi as vis ON jon.num=vis.num
                    LEFT JOIN ac as acui ON jon.num=acui.num
                    LEFT JOIN au as aud ON jon.num=aud.num
                    LEFT JOIN e as ec ON jon.num=ec.num
                    LEFT JOIN ha as han ON jon.num=han.num
                    LEFT JOIN pe as peri ON jon.num=peri.num
                    LEFT JOIN pr as pre ON jon.num=pre.num";
$res=mysql_query($sql);
if(!$res) die ('Unable to run query:'.mysql_error());


    while ($row = mysql_fetch_assoc($res))
{
    //echo implode(', ', $row)."\r\n";

   fputcsv(STDOUT, $row);
}        

在 PHP 文件中

$rslt = mysql_query("SELECT * FROM ".$table." WHERE num = ".$id."") or die("Unable to Execute QueryThe error was" . mysql_error());                 
$record = mysql_fetch_assoc($rslt);
var jsonObject = JSON.stringify($record);    
4

3 回答 3

2

There's also fputcsv() for this:

$rslt = mysql_query("SELECT * FROM ".$table." WHERE no = ".$id."") or die("Unable to Execute QueryThe error was" . mysql_error());
while ($row = mysql_fetch_assoc($rslt))
{
    fputcsv(STDOUT, $row);
}

This function takes care of values containing commas.

于 2012-06-19T10:50:41.093 回答
0
$rslt = mysql_query("SELECT * FROM ".$table." WHERE no = ".$id."") or die("Unable to Execute QueryThe error was" . mysql_error());
while ($row = mysql_fetch_assoc($rslt))
{
    echo implode(', ', $row)."\r\n";
}

请注意,上述解决方案假定,您的字段中没有。

于 2012-06-19T10:44:09.037 回答
0
mysql_connect("localhost","root","");
mysql_select_db("test");
$rslt = mysql_query("SELECT * FROM alok") or die("Unable to Execute QueryThe error was" . mysql_error());                 
$record = mysql_fetch_assoc($rslt);
$jval = json_encode($record);

echo $jval;
database
name(field) ["6","1","1"]
Result
{"name":"[\"6\",\"1\",\"1\"]"}

但您的数据以前以 json 解码格式保存。

于 2012-06-19T10:47:45.167 回答