以txt格式打印mysql表的内容

时间:2014-11-27 15:53:56

标签: php html mysql implementation

我正在开发一个包含大量os用户信息的Web应用程序(php,javascript,html)。它专为临时工作而设计。

问题是,我有三个表(mysql),其中包含有关用户的信息。一个用于地址和其他内容,另一个用于驱动程序许可证,证书,...,以及最后一个用户体验。

我想要做的是,有一个“打印”按钮,可以在一个文件中生成包含所有数据的txt文件。问题是,我已经知道如何去做。

1)使用用户名检索联接中表格的所有信息。 2)我已经使用“resource_to_array”函数来构建包含所有数据的数组 3)我可以去数组的每一列并保存我想要的信息

但我要问的是经验做这样的事情。这对我来说是第一次,我希望它能够为未来做好和可扩展。

如何成为实施它的好方法?另外,我怎样才能创建包含所有信息的纯文本? (这部分是我更加怀疑的地方)

我知道这可能是一个奇怪的问题..但我不想要代码,我只想要实现的愿景。此外,是否存在类似于我想要做的事情的库?

非常感谢。

1 个答案:

答案 0 :(得分:2)

首先创建一个生成文本文件的链接。

<a href="print.php">Print</a>

现在,在print.php你必须把你的逻辑。

  1. 执行连接查询以获取数据。
  2. 获取"array"以构建包含所有数据的数组。
  3. text文件中保存要保存的数组中的元素。
  4. 现在逻辑在这里,使用file handling创建带有保存数据的文本文件。
  5. 逻辑就在这里(print.php):

    <?php
    
    $conn = new mysqli("host-name","username","password","database-name");
    
    $query = "....";
    $result = $conn->query($query);
    $rs = $result->fetch_array(MYSQLI_BOTH);
    
    while($rs = $result->fetch_array(MYSQLI_BOTH))
    {
       $data = $rs['column-name']; // data you want to save in text file
    
    $f = fopen("save.txt", 'a');
         fwrite($f, $data);
         fclose($f);
    
    }
    
       $filename = "save-data.txt"; // name of the file you want to download on clicking the link 
        $file = "save-data.txt";
        $type = filetype($file);
        // Send file headers
        header("Content-type: $type");
        header("Content-Disposition: attachment;filename=$filename");
        header("Content-Transfer-Encoding: binary"); 
        header('Pragma: no-cache'); 
        header('Expires: 0');
        // Send the file contents.
        set_time_limit(0); 
        readfile($file);
    
    ?>
    

    旁注:a开关附加到文件。如果您不想继续添加,请使用w开关:

    $f = fopen("save.txt", 'w');
    

    我希望它会对你有所帮助。