Php SUM函数在SQL查询中生成错误
我试图通过php脚本获取有关SQL表的信息,但是,每当我添加一个求和函数时,就会出现以下错误“注意:试图获取非对象的属性'num_rows'” 我不知道发生了什么事,但如果有人能向我解释/指出如何解决这个问题的正确方向,我将不胜感激 这是“坏”代码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
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
来确定结果的数量<代码>