PHPとMySQLを使用してクエリを実行しています。同じクエリを持つ2つのスクリプトを作成しましたが、1つはブラウザにクエリ結果を表示するためのもので、もう1つはクエリ結果をファイルとしてダウンロードするためのものです。同じクエリですが、ダウンロード中に異なる結果が得られますが、これは正しくありません。たとえば私のクエリは
$query="select * from tf where gene_symbol like '%$sterm%' || gene_name like '%$sterm%' || synonym like '%$sterm%'";
$sterm
がZINCFINGERPROTEINの場合、mysqlコマンドラインと表示の両方で685レコードを提供します。しかし、ファイルをダウンロードすると、レコードを追加することで約800レコードが得られますwhere gene_name like '%ZINC FINGER%'
誰かがそれを引き起こしている可能性がある、何か考えを持っていますか?前もって感謝します。コニカ
これがファイルをダウンロードするためのコードです
<?php
$sterm = $_POST["sterm"];
$sterm = strtoupper($sterm);
$query = "select * from tf where gene_symbol like '%$sterm%' || gene_name like '%$sterm%' || synonym like '%$sterm%'";
$result = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($result) > 0) {
result_disp($result);
}
function result_disp($results)
{
$num_fields = mysql_num_fields($results);
$headers = array();
for ($i = 0; $i < $num_fields; $i++) {
$headers[] = mysql_field_name($results, $i);
}
$fp = fopen('php://output', 'w');
if ($fp && $results) {
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="export.txt"');
header('Pragma: no-cache');
header('Expires: 0');
fputcsv($fp, $headers, chr(9));
while ($rows = mysql_fetch_row($results)) {
fputcsv($fp, array_values($rows), chr(9));
}
die;
}
}
fclose($fp);
?>