在PHP中将MySQL数据库中的数据导出到excel
我是PHP新手。我只想将数据(查询数据库得到的搜索结果)导出到excel。 我的问题是excel中的数据会自动更改新行我想要“cn”“ai”。。。在下一列,但不是下一行。 我已经删除了所有的在PHP中将MySQL数据库中的数据导出到excel,php,mysql,excel,export-to-csv,Php,Mysql,Excel,Export To Csv,我是PHP新手。我只想将数据(查询数据库得到的搜索结果)导出到excel。 我的问题是excel中的数据会自动更改新行我想要“cn”“ai”。。。在下一列,但不是下一行。 我已经删除了所有的$csv\u输出在我的代码中。 所以我觉得我的查询语句可能有问题: $searchp = " select * from insecticide a LEFT JOIN crop b ON a.I
$csv\u输出代码>在我的代码中。
所以我觉得我的查询语句可能有问题:
$searchp = "
select
*
from
insecticide a
LEFT JOIN crop b
ON a.ID = b.ID
where
a.Pestcide_trade_name like'%$tn%'
and a.Pestcide_trade_name like'%$tn2%'
and b.Crops like'%$crops%'
and b.Crops like'%$crops2%'
and a.AMW like'%$amw%'
and b.Pests like'%$pest%'
and a.Company_name like'%$cn%'
and a.Company_name like'%$cn2%'
and a.Active_ingredient like'%$ai%'
and a.Active_ingredient like'%$ai2%'
and a.PPE like'%$ppe%'
and a.PPE like'%$ppe2%'
and a.MMW like'%$mmw%'
and a.EH like'%$eh%'
and b.REI like'%$rei%'
and b.REI like'%$rei2%'
ORDER BY
a.Pestcide_trade_name ASC"
我不熟悉PHP和MySQL。关于这个问题,请给我一些提示。谢谢
<?php
require_once("db.php");
$tn = $_POST['TN']?$_POST['TN']:'';
$tn2 = $_POST['TN2']?$_POST['TN2']:'';
$cn = $_POST['CN']?$_POST['CN']:'';
$cn2 = $_POST['CN2']?$_POST['CN2']:'';
$ai = $_POST['AI']?$_POST['AI']:'';
$ai2 = $_POST['AI2']?$_POST['AI2']:'';
$ppe = $_POST['PPE']?$_POST['PPE']:'';
$ppe2 = $_POST['PPE2']?$_POST['PPE2']:'';
$amw = $_POST['AMW']?$_POST['AMW']:'';
$mmw = $_POST['MMW']?$_POST['MMW']:'';
$eh = $_POST['EH']?$_POST['EH']:'';
$crops = $_POST['Crops']?$_POST['Crops']:'';
$crops2 = $_POST['Crop2']?$_POST['Crop2']:'';
$rei = $_POST['REI']?$_POST['REI']:'';
$rei2 = $_POST['REI2']?$_POST['REI2']:'';
$pest = $_POST['PEST']?$_POST['PEST']:'';
$rate = $_POST['RATE']?$_POST['RATE']:'';
$note = $_POST['Note']?$_POST['Note']:'';
$restrictions = $_POST['Restrictions']?$_POST['Restrictions']:'';
$searchp = "select * from insecticide a LEFT JOIN crop b ON a.ID = b.ID where a.Pestcide_trade_name like'%$tn%' and a.Pestcide_trade_name like'%$tn2%' and b.Crops like'%$crops%' and b.Crops like'%$crops2%' and a.AMW like'%$amw%' and b.Pests like'%$pest%' and a.Company_name like'%$cn%' and a.Company_name like'%$cn2%' and a.Active_ingredient like'%$ai%' and a.Active_ingredient like'%$ai2%' and a.PPE like'%$ppe%' and a.PPE like'%$ppe2%' and a.MMW like'%$mmw%' and a.EH like'%$eh%' and b.REI like'%$rei%' and b.REI like'%$rei2%' ORDER BY a.Pestcide_trade_name ASC";
$result=mysql_query($searchp)or die(mysql_error());
$num=mysql_numrows($result);
mysql_close();
$csv_output = '"Trade name","Company Name","Active Ingredient","PPE","Applicators Must Wear","Mixers Must Wear","Environmental Hazards","CROPS","REI","PEST","RATE","RATE","NOTE","RESTRICTION"\N';
$i=0;
while ($i < $num) {
$tn1 = mysql_result($result,$i,"Pestcide_trade_name");
$cn1 = mysql_result($result,$i,"Company_name");
$ai1 = mysql_result($result,$i,"Active_ingredient");
$ppe1 = mysql_result($result,$i,"PPE");
$amw1 = mysql_result($result,$i,"AMW");
$mmw1 = mysql_result($result,$i,"MMW");
$eh1 = mysql_result($result,$i,"EH");
$crop1 = mysql_result($result,$i,"Crops");
$rei1 = mysql_result($result,$i,"REI");
$pest1 = mysql_result($result,$i,"Pests");
$rate1 = mysql_result($result,$i,"Rate_FL_OZ_ARCE");
$rate11 = mysql_result($result,$i,"RATE_LB_ARCE");
$note1 = mysql_result($result,$i,"Note");
$restrictions1 = mysql_result($result,$i,"Restrictions");
$csv_output .= "$tn1";
$csv_output .="$cn1";
$csv_output .="$ai1";
$csv_output .= "$ppe1";
$csv_output .="$amw1";
$csv_output .= "$mmw1";
$csv_output .= "$eh1";
$csv_output .= "$crop1";
$csv_output .= "$rei1";
$csv_output .= "$pest1";
$csv_output .= "$rate1";
$csv_output .= "$rate11";
$csv_output .= "$note1";
$csv_output .= "$restrictions1";
$csv_output .= "\n";
++$i;
}
$filename = "results_".date("Y-m-d_H-i",time());
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header( "Content-disposition: filename=".$filename.".csv");
print $csv_output;
exit;
?>
不要自己编写CSV代码。见:
另外,您缺少分隔符。。。但是不要修改这个代码。重构它。不要自己编写CSV代码。见:
另外,您缺少分隔符。。。但是不要修改这个代码。重构它。您忘记了逗号和引号:
$csv_output .= '"' . $tn1 . '",';
$csv_output .= '"' . $cn1 . '",';
// etc.
您忘记了逗号和引号:
$csv_output .= '"' . $tn1 . '",';
$csv_output .= '"' . $cn1 . '",';
// etc.
您在这里所做的是非常危险的,将未替换的用户输入直接放入SQL查询中。您不应该在任何新的应用程序中使用mysql\u query
,因为它已经退役,而且,它会导致代码完全像这样,充满bug和安全问题。学习如何使用PDO或mysqli
并不需要很长时间,从那时起,您将安全无虞。学习如何在PHP中使用MySQL的第一步是学习如何不使用MySQL\u query
。您在这里所做的是非常危险的,将未经替换的用户输入直接放入SQL查询中。您不应该在任何新的应用程序中使用mysql\u query
,因为它已经退役,而且,它会导致代码完全像这样,充满bug和安全问题。学习如何使用PDO或mysqli
并不需要很长时间,从那时起,您将安全无虞。学习如何在PHP中使用MySQL的第一步是学习如何不使用MySQL\u query
。或$csv\u output.=“$tn1”,”
或$csv\u输出=“$tn1”,”代码>。