使用来自两个不同表 - MySQL的值从表中获取数据时出错

时间:2015-04-23 16:48:26

标签: php mysql

我有两个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++;
                    }
                }
            }

2 个答案:

答案 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]."')"