我有两张表如下:
表1(TRIPLE_COGNAC)
TRIPLE_ID,PDB_ID,FIRST_RESIDUE,FIRST_CHAIN,SECOND_RESIDUE,SECOND_CHAIN,THIRD_RESIDUE,THIRD_CHAIN,SEQUENCE
TCOG_98084,3oww,A64,B,G7,A,C82,A,AGC
TCOG_98085,3oww,G84,B,A41,A,G62,A,GAG
TCOG_98086,3oww,G7,B,A64,A,C39,A,GAC
TCOG_98087,3oww,U69,A,C70,A,G35,A,UCG
TCOG_98088,3oww,G32,A,A71,A,A34,A,GAA
TCOG_98089,3oww,A11,A,G73,A,C30,A,AGC
TCOG_98090,3oww,A41,B,G84,A,C5,A,AGC
TCOG_98091,3oww,C82,B,G7,B,A64,A,CGA
...
...
...
表2(QUAD1_COGNAC)
QUAD1_39435,3oww,C39,B,A64,B,G7,A,C82,A,CAGC
QUAD1_39436,3oww,C5,B,G84,B,A41,A,G62,A,CGAG
QUAD1_39437,3oww,C82,B,G7,B,A64,A,C39,A,CGAC
QUAD1_39438,3oww,G62,B,A41,B,G84,A,C5,A,GAGC
...
...
...
我想使用PHP下载表1和表2中的行PDB_ID = 3oww
作为csv文件。我能够这样做,但输出页面不是我想要的当前输出是:
TRIPLE_ID,PDB_ID,FIRST_RESIDUE,FIRST_CHAIN,SECOND_RESIDUE,SECOND_CHAIN,THIRD_RESIDUE,THIRD_CHAIN,SEQUENCE
TCOG_98084,3oww,A64,B,G7,A,C82,A,AGC
TCOG_98085,3oww,G84,B,A41,A,G62,A,GAG
TCOG_98086,3oww,G7,B,A64,A,C39,A,GAC
TCOG_98087,3oww,U69,A,C70,A,G35,A,UCG
TCOG_98088,3oww,G32,A,A71,A,A34,A,GAA
TCOG_98089,3oww,A11,A,G73,A,C30,A,AGC
TCOG_98090,3oww,A41,B,G84,A,C5,A,AGC
TCOG_98091,3oww,C82,B,G7,B,A64,A,CGA
<br />
<b>Warning</b>: Cannot modify header information - headers already sent by (output started at /Applications/XAMPP/xamppfiles/htdocs/interrna/download- test.php:48) in <b>/Applications/XAMPP/xamppfiles/htdocs/interrna/download- test.php</b> on line <b>46</b><br />
<br />
<b>Warning</b>: Cannot modify header information - headers already sent by (output started at /Applications/XAMPP/xamppfiles/htdocs/interrna/download-test.php:48) in <b>/Applications/XAMPP/xamppfiles/htdocs/interrna/download-test.php</b> on line <b>47</b><br />
TRIPLE_ID,PDB_ID,FIRST_RESIDUE,FIRST_CHAIN,SECOND_RESIDUE,SECOND_CHAIN,THIRD_RESIDUE,THIRD_CHAIN,SEQUENCE,QUAD1_ID,PDB_ID,FIRST_RESIDUE,FIRST_CHAIN,SECOND_RESIDUE,SECOND_CHAIN,THIRD_RESIDUE,THIRD_CHAIN,FOURTH_RESIDUE,FOURTH_CHAIN,SEQUENCE
QUAD1_39435,3oww,C39,B,A64,B,G7,A,C82,A,CAGC
QUAD1_39436,3oww,C5,B,G84,B,A41,A,G62,A,CGAG
QUAD1_39437,3oww,C82,B,G7,B,A64,A,C39,A,CGAC
QUAD1_39438,3oww,G62,B,A41,B,G84,A,C5,A,GAGC
我希望能够根据$names
数组将这些文件作为单独的文件下载。因此file1将triple_cognac.csv
包含Table1中的行,而quad1_cognac.csv
将包含Table2中的行。有人可以帮忙纠正代码吗?
我的代码:
<?php
// Make a MySQL Connection
$conn = mysql_connect("localhost","root","");
mysql_select_db("2RNA",$conn);
$pdbid = $_GET['var'];
//print $pdbid;
$names = array(
"triple_cognac" => "TRIPLE_COGNAC",
"quad1_cognac" => "QUAD1_COGNAC",
);
foreach($names as $x => $x_value) {
$file = $x;
$tablename = $x_value;
$sql1 = mysql_query("SELECT * from ". $tablename. " where PDB_ID like '$pdbid'");
if(mysql_num_rows($sql1) == 0)
{
echo "";
}
else
{
//print $file ." ". $tablename;
//print "</br>";
$filename = $file.".csv";
$fp = fopen('php://output', 'w');
$query = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='2RNA' AND TABLE_NAME= '$tablename'";
$result = mysql_query($query);
while ($row = mysql_fetch_row($result)) {
$header[] = $row[0];
}
header('Content-type: application/csv');
header('Content-Disposition: attachment; filename='.$filename);
fputcsv($fp, $header);
$num_column = count($header);
$query2= "SELECT * from ". $tablename. " where PDB_ID like '$pdbid'";
$result2 = mysql_query($query2);
while($row = mysql_fetch_row($result2)) {
fputcsv($fp, $row);
}
}
}
//exit;
?>