繁体   English   中英

从SQL查询中提取行数并将其作为变量放入PHP?

[英]Pull number of rows from a SQL query and put it in PHP as a variable?

这是将4个查询合二为一。 这确实是很老的代码,一旦完成这项工作,我们就可以稍后将其更新为PDO以确保安全。 我想做的是从

select count(*) from  dialogue_employees d_e, 
    dialogue_leaders d_l where
    d_l.leader_group_id = d_e.leader_group_id 

并将其用于公式中,在该公式中我还可以计算出dialog.status = 1的行数。

公式位于底部,可从结果中创建总计百分比。 这是PHP和MySQL,我不确定计数行并将其作为变量放入php的最佳方法,以便在底部的公式中使用?

function calculate_site_score($start_date, $end_date, $status){
    while($rows=mysql_fetch_array($sqls)){
        $query = "
        SELECT 
            dialogue.cycle_id, 
            $completecount = sum(dialogue.status) AS calculation, 
            $total_employees = count(dialogue_employees AND dialogue_leaders), dialogue_list.*, 
        FROM dialogue,
            (SELECT * FROM dialogue_list WHERE status =1) AS status, 
            dialogue_employees d_e, 
            u.fname, u.lname, d_e.*
            user u,
            dialogue_list,
            dialogue_leaders d_l 
                LEFT JOIN dialogue_list d_list 
                ON d_e.employee_id = d_list.employee_id,
        WHERE 
            d_l.leader_group_id = d_e.leader_group_id 
            AND d_l.cycle_id = dialogue.cycle_id
            AND u.userID = d_e.employee_id 
            AND dialogue_list.employee_id
            AND site_id='$_SESSION[siteID]' 
            AND  start_date >= '$start_date' 
            AND start_date <= '$end_date'";
        $sqls=mysql_query($query) or die(mysql_error());
    }
    $sitescore=($completecount/$total_employees)*100;
    return round($sitescore,2);
}

如果您分开查询,则可以更好地控制数据。 你要小心点数。 那里很拥挤。

如果您只是想清理函数,可以像这样堆叠查询,使它们更有意义,那么该函数非常拥挤。

function calculate_site_score($start_date, $end_date, $status){

    $query="select * from dialogue;";

    if ($result = $mysqli->query($query))) {

        //iterate your result
        $neededElem = $result['elem'];
        $query="select * from dialogue_list where status =1 and otherElem = " . $neededElem . ";";

        //give it a name other than $sqls, something that makes sense. 
        $list = $mysqli->query($query);

        //iterate list, and parse results for what you need
        foreach($list as $k => $v){
            //go a level deeper, or calculate, rinse and repeat
        }
    }

然后分别计算。

因此,如果您单独将每个查询分开,将很有帮助。

这是一个计数示例如何计数表的列

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM