【问题标题】:PHP File if Condition get different result and errorPHP文件如果条件得到不同的结果和错误
【发布时间】:2018-05-22 14:39:59
【问题描述】:

我同时执行了三个查询,并且声明了一个对象 $sql。 结果“产品”数组实际上四记录只显示一条记录,三记录不显示。在“total”数组百分比值中显示空值。

我需要这个结果

  {"success":1,"product":[{"std_Name":"VIVEK SANAPARA","Standard":"12-SCI-CE","Division":"A","ExamDate":{"date":"2016-10-06 00:00:00.000000","timezone_type":3,"timezone":"UTC"},"subject":"MATHS","ExamName":"WT","Marks":"30.00","TotalMarks":"30.00","PassingMarks":"10"},{"std_Name":"VIVEK SANAPARA","Standard":"12-SCI-CE","Division":"A","ExamDate":{"date":"2016-10-07 00:00:00.000000","timezone_type":3,"timezone":"Asia\/Kolkata"},"subject":"PHYSICS","ExamName":"WT","Marks":"15.00","TotalMarks":"30.00","PassingMarks":"10"},{"std_Name":"VIVEK SANAPARA","Standard":"12-SCI-CE","Division":"A","ExamDate":{"date":"2016-10-08 00:00:00.000000","timezone_type":3,"timezone":"Asia\/Kolkata"},"subject":"PHYSICS","ExamName":"WT","Marks":"25.00","TotalMarks":"30.00","PassingMarks":"10"},{"std_Name":"VIVEK SANAPARA","Standard":"12-SCI-CE","Division":"A","ExamDate":{"date":"2016-11-22 00:00:00.000000","timezone_type":3,"timezone":"Asia\/Kolkata"},"subject":"PHYSICS","ExamName":"WT","Marks":"25.00","TotalMarks":"30.00","PassingMarks":"10"},],"total":[{"Marks":"30.00","TotalMarks":"30.00","Percentage":"79.166600"}],"exam":[{"ExamName":"WT"}]}

我在代码下方显示了错误图像。在图像中只显示一条记录,但在上面的结果中,四条记录和百分比值在图像中显示为空。

Marks.php

if(isset($_REQUEST["insert"])) 
{ 
$reg = $_GET['reg'];

$sql = "select b.std_Name,d.Standard,e.Division,a.ExamDate,f.subject,a.ExamName,a.Marks,a.TotalMarks,a.PassingMarks 
                                  from Marks_mas a  inner join std_reg b on a.regno=b.regno 
                                  INNER JOIN Subject_mas as f ON a.Subject_ID = f.Subject_ID 
                                  inner join StandardMaster d on a.standard = d.STDID 
                                  inner join DivisionMaster e on a.Division = e.DivisionID 
                                  where a.RegNo= '$reg' order by a.ExamDate; select   sum(a.Marks) as Marks,sum(a.TotalMarks) as TotalMarks, sum(a.Marks)/sum(a.TotalMarks) * 100 as Percentage 
                                   from Marks_mas a 
                                   where a.RegNo= '$reg'; select distinct ExamName From Marks_mas;";

$stmt = sqlsrv_query($conn, $sql);

$result = array(); 

 if (!empty($stmt)) {
        // check for empty result
        if (sqlsrv_has_rows($stmt) > 0) {

            $stmt = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

            $product = array();
            $product["std_Name"] = $stmt["std_Name"];
            $product["Standard"] = $stmt["Standard"];
            $product["Division"] = $stmt["Division"];
            $product["ExamDate"] = $stmt["ExamDate"];
            $product["subject"] = $stmt["subject"];
            $product["ExamName"] = $stmt["ExamName"];
            $product["Marks"] = $stmt["Marks"];
            $product["TotalMarks"] = $stmt["TotalMarks"];
            $product["PassingMarks"] = $stmt["PassingMarks"];

            $total = array();
            $total["Marks"] = $stmt["Marks"];
            $total["TotalMarks"] = $stmt["TotalMarks"];
            $total["Percentage"] = $stmt["Percentage"];

            $exam = array();
            $exam["ExamName"] = $stmt["ExamName"];


            // success
            $result["success"] = 1;

            // user node
            $result["product"] = array();
            $result["total"] = array();
            $result["exam"] = array();


            array_push($result["product"],$product);
            array_push($result["total"],$total);
            array_push($result["exam"],$exam);

            // echoing JSON response
            echo json_encode($result);


        } else {
            // no product found
            $result["success"] = 0;
            $result["message"] = "No product found";

            // echo no users JSON
            echo json_encode($result);

        }

        //sqlsrv_free_stmt($stmt);
        sqlsrv_close($conn); //Close the connnection first  

    }


}

这是错误:

enter image description here

【问题讨论】:

    标签: php sql json sql-server


    【解决方案1】:

    只需将百分比计算部分放在括号中并尝试

    (sum(a.Marks)/sum(a.TotalMarks) * 100) as Percentage
    

    【讨论】:

    • 遇到同样的错误,只显示一条记录,三条记录不显示。请给出任何解决方案
    【解决方案2】:

    在您的 sql 查询中没有名称为“百分比”的字段,这就是您收到此错误的原因

    $sql = "选择 b.std_Name,d.Standard,e.Division,a.ExamDate,f.subject,a.ExamName,a.Marks,a.TotalMarks,a.PassingMarks,缺失百分比 "

    【讨论】:

    • 上面的实际结果显示我需要那个结果。在错误图像中仅显示一条记录。三后不显示。如何获得三个记录后看起来像上面的结果。请给出任何解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    相关资源
    最近更新 更多