0

私はmysqlでphpに取り組んでおり、ユーザーがmysqlデータベースから名前と場所で検索できる検索フォームが私のサイトにあります。場所。ユーザーが検索すると、結果が表形式で表示されます。この結果を csv 形式でエクスポートしたいのですが、可能ですか??

ここに私の検索フォームがあります:

<form class="form-horizontal" action="" method="post" name="userform">
    <?php if($_GET[id]){?>
    <?php }else{?>
    <fieldset>
     <legend>Search</legend>
    <div class="control-group">
    <label class="control-label">Search Term</label>
    <div class="controls">
    <input type="text" class="span3 search-query" name="term" placeholder="search by name and location">
    <button type="submit" class="btn" name="search">Search</button>
    </div>
    </div>
</form>

データベースから結果を取得するクエリは次のとおりです。

<?php 
                 // to print the records
                $term = $_POST['term'];
                if($term != ""){
                 $sql = mysql_query("select * from customers where name like '%$term%' or location like '%$term%'");
                while ($row = mysql_fetch_array($sql)){
                ?>

                <tr>
                <td><?php echo $row[cid];?></td>
                <td><?php echo $row[name ];?></td>
                <td><?php echo $row[email];?></td>
                <!--<td>&nbsp;</td>-->
                <td><?php echo $row[mobile];?></td>               
                <td><?php echo $row[address];?></td>
                 <td><?php echo $row[location];?></td>
?>
4

2 に答える 2

0

おそらく、次のように結果を再度クエリします。

$query = "SELECT * 
INTO OUTFILE '/tmp/result.csv'
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
FROM customers
WHERE name LIKE '%" . $term . "%'
OR location LIKE '%" . $term . "%'";

これはまだ試していませんが、開いたりリンクしたりできる csv ファイルが生成されるはずです。

于 2013-06-14T12:37:04.063 に答える
0

PHPExcel は既に提案されており、これは最高のライブラリの 1 つです。主な欠点の 1 つはメモリ フットプリントであり、単純な CSV エクスポートではやり過ぎになる可能性があります。

CSV のみが必要な場合は、MySQL の (より低レベルの) 組み込み機能を調べることができますSELECT ... INTO OUTFILE

柔軟性が低く、いくつかの落とし穴がありますが、外部ライブラリに頼る場合に比べて非常に高速です。このアプローチで発生する可能性のあるほとんどの問題は、ここ StackOverflow で既に回答されています。

于 2013-06-14T12:37:33.373 に答える