我有两个MySQL表 - “mfb_servicelog”和“mfb_agent_status_summary”。
我想从“mfb_agent_status_summary”中的“total_ce”列中选择数据,其中sl_id = $ sl_id,然后使用PHPExcel将其导出为Excel工作表。
我可以从mfb_servicelog表中获取$ sl_id值,其中h_id = $ value [$ i]。
$ value的值来自另一个使用_POST作为数组的php文件。
请指出正确的选择。
这是我的代码:(返回长错误列表)
$value = $_POST['hospitalname'];
$from = $_POST['from'];
$to = $_POST['to'];
if($_POST["Submit"]=="Submit") {
for ($i=0; $i<sizeof($value); $i++) {
$queryslid="SELECT sl_id FROM mfb_servicelog WHERE h_id LIKE ('".$value[$i]."')";
if ($resultslid = (mysql_query($queryslid) or die(mysql_error())) {
while($rowslid = mysql_fetch_row($resultid)) {
$slidset[$i] = $rowslid;
}
$querycasesentered = "SELECT total_ce FROM agent_summary WHERE sl_id LIKE ('".$slidset[$i]."')";
if ($resultcaseentered = (mysql_query($querycasesentered) or die(mysql_error())) {
while($rowce = mysql_fetch_row($resultcasesentered)) {
$casee[$i] = $rowce;
if($i == 0) {
$col = 'H';
}
else {
$col = $k;
}
foreach ($rowce as $cell) {
$obejctPHPExcel->getActiveSheet()->setCellValue($col.$rowNumber,$cell);
$col++;
}
$rowNumber++;
}
}
}
答案 0 :(得分:1)
您正在以错误的方式使用mysql_query。 mysql_query有2个参数,即连接和查询
你可以看一下这个定义: http://www.w3schools.com/php/func_mysqli_query.asp
简而言之,我建议你在不确定自己在使用mysql时应该使用PDO。为了理解什么是PDO,您应该仔细阅读本教程http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers,它可以帮助您防止SQL注入代码。
答案 1 :(得分:1)
只是抬头,你在接受POST数据而不清理它,然后再运行你的SQL语句,这是非常危险的,并打开你的数据库注入成就。但对于手头的问题。使用类似于:
的连接SQL语句$sql = "SELECT total_ce FROM agent_summary AS agent LEFT JOIN mfb_servicelog AS service ON agent.sl_id = service.sl_id WHERE service.h_id LIKE ('".$value[$i]."')"