Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SUM函数在SQL查询中生成错误_Php_Sql - Fatal编程技术网

Php SUM函数在SQL查询中生成错误

Php SUM函数在SQL查询中生成错误,php,sql,Php,Sql,我试图通过php脚本获取有关SQL表的信息,但是,每当我添加一个求和函数时,就会出现以下错误“注意:试图获取非对象的属性'num_rows'” 我不知道发生了什么事,但如果有人能向我解释/指出如何解决这个问题的正确方向,我将不胜感激 这是“坏”代码 <?php require("connect.php"); $inNo = $_POST["inNo"]; $sql = "SELECT invoice.invoice_no, invoice.date, invoice.cust_id, in

我试图通过php脚本获取有关SQL表的信息,但是,每当我添加一个求和函数时,就会出现以下错误“注意:试图获取非对象的属性'num_rows'”

我不知道发生了什么事,但如果有人能向我解释/指出如何解决这个问题的正确方向,我将不胜感激

这是“坏”代码

<?php
require("connect.php");
$inNo = $_POST["inNo"];
$sql = "SELECT invoice.invoice_no, invoice.date, invoice.cust_id, invoice.emp_id, invoice_line.prod_id, 
               invoice_line.qty, product.cost_price, (product.cost_price * invoice_line.qty) AS `multi`, 
               customer.first_name AS `customer_fname`, customer.last_name AS `customer_lname`, 
               employee.first_name AS `emp_fname`, employee.last_name AS `emp_lname`, 
               product.name AS `proname` 
        FROM invoice INNER JOIN invoice_line ON invoice.invoice_no = invoice_line.invoice_no 
                     INNER JOIN product ON invoice_line.prod_id = product.id 
                     INNER JOIN customer ON invoice.cust_id = customer.id 
                     INNER JOIN employee ON invoice.emp_id = employee.id, SUM(multi) AS `invoicetotal` 
        WHERE cust_id = '" . $inNo . "'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    //open table
    echo '<table class="table table-striped" id="outTable">';
    echo "<tr><th>Product</th><th>Qty</th><th>Price</th><th>Total cost</th></tr>";
    // output data of each row
    $ctr = 0;
    while($row = $result->fetch_assoc()) {
        if ($ctr == 0)
        {
            echo "<h1>Invoice Number: " . $row["invoice_no"]. "</h1>";
            echo "<p>Customer: " . $row["customer_fname"]. " " . $row["customer_lname"]."</p>";
            echo "<p>Employee: " . $row["emp_fname"]. " " . $row["emp_lname"]. "</p>";
            echo "<p>Date: " . $row["date"]. "</p>";
        }
        echo "
        <tr>
        <td>" . $row["proname"]. "</td>
        <td>" . $row["qty"]. "</td>
        <td>" . $row["cost_price"]. "</td>
        <td>" . $row["multi"]. "</td>
        </tr>";
        $ctr++;
    }
} else {
    echo "0 results";
}
$conn->close();
?>

您需要在上面的选择部分中插入SUM(),从:

SELECT 
 invoice.invoice_no, 
 invoice.date, 
 invoice.cust_id, 
 invoice.emp_id, 
 invoice_line.prod_id, 
 invoice_line.qty, 
 product.cost_price, 
 (product.cost_price * invoice_line.qty) AS `multi`, 
 customer.first_name AS `customer_fname`, 
 customer.last_name AS `customer_lname`, 
 employee.first_name AS `emp_fname`, 
 employee.last_name AS `emp_lname`, 
 product.name AS `proname`,
 SUM(multi) AS `invoicetotal` 
FROM invoice 
INNER JOIN invoice_line 
  ON invoice.invoice_no = invoice_line.invoice_no 
INNER JOIN product 
  ON invoice_line.prod_id = product.id 
INNER JOIN customer 
  ON invoice.cust_id = customer.id 
INNER JOIN employee 
  ON invoice.emp_id = employee.id` WHERE cust_id = 99

顺便说一句,明智的做法是将代码-SQL代码的格式设置得太好。

在invoice.emp\u id=employee.id上内部加入employee,SUM(multi)AS invoicetotal,其中cust\u id=…
:此SQL代码没有意义。你想做什么?我想在@GMBFWIW制作一张发票单,
$result->num_rows
是不必要的:只要在
时直接进入
。您已经有了
$ctr
来确定结果的数量<代码>