douxian4323 2016-02-10 15:50
浏览 9
已采纳

too long

I have this PHP script which is supposed to take an SQL Query and output it to a CSV file, I know that when I run it i'm getting the right Statement put in but it does not seem to generate a file to my uploads folder.

Could anyone debug this for me?

<?php
function ExportExcel($statement)
{

$filename = "uploads/".strtotime("now").'.csv';

$sql = mysql_query("$statement") or die(mysql_error());

$num_rows = mysql_num_rows($sql);
if($num_rows >= 1)
{
$row = mysql_fetch_assoc($sql);
$fp = fopen($filename, "w");
$seperator = "";
$comma = "";

foreach ($row as $name => $value)
    {
        $seperator .= $comma . '' .str_replace('', '""', $name);
        $comma = ",";
    }

$seperator .= "
";
fputs($fp, $seperator);

mysql_data_seek($sql, 0);
while($row = mysql_fetch_assoc($sql))
    {
        $seperator = "";
        $comma = "";

        foreach ($row as $name => $value) 
            {
                $seperator .= $comma . '' .str_replace('', '""', $value);
                $comma = ",";
            }

        $seperator .= "
";
        fputs($fp, $seperator);
    }

fclose($fp);
echo "<a href='$filename'>Download</a>";
echo $statement;
}
else
{
    echo "error";
}


}
?>

If someone has a similar script that uses mysqli that would be nice

  • 写回答

1条回答 默认 最新

  • dszm02606009 2016-02-10 15:57
    关注

    here is a example of a export script I use on my apps using MySqli. This will get you started...

    <?php
    
        function ExportExcel($statement){
    
            $output = ""; 
            $sql = mysqli_query($db , $statement);
            $columns_total = mysqli_num_fields($sql);
    
            // Get The Field Name
    
            for ($i = 0; $i < $columns_total; $i++) {
            $heading = mysqli_fetch_field_direct($sql, $i);
            $output .= '"'.$heading->name.'",';
            }
            $output .="
    ";
    
            // Get Records from the table
    
            while ($row = mysqli_fetch_array($sql)) {
            for ($i = 0; $i < $columns_total; $i++) {
            $output .='"'.$row["$i"].'",';
            }
            $output .="
    ";
            }
    
            // Download the file
    
            $filename = "CSV_NAME_GOES_HERE.csv";
            header('Content-type: application/csv');
            header('Content-Disposition: attachment; filename='.$filename);
    
            echo $output;
            exit;
    
        }
    
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 mmocr的训练错误,结果全为0
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀