[英]Why is this function not returning the correct result?
我正在通过创建两个函数“ daySum()”和“ yesterdaySum()”从数据库中获取数据。 调用这些函数时,它将分别返回正确的值54000和51000。
然后,将它们放入变量$ day和$ yesterday,但是在执行变量操作“ $ day + $ yesterday”时,它将显示0。这将不允许我创建项目所需的条件。
你能帮我吗?
提前致谢!
//DEFINING 2 FUNCTIONS: daySum() and yesterdaySum()
function daySum() {
//connect to database
require 'connect.php';
// query
$query = "SELECT sum(till_amount) FROM Cash ";
$query .= "WHERE date ='2017-09-05'";
$result = mysqli_query($connect, $query);
// fetch
while($row = mysqli_fetch_assoc($result)) {
print_r($row["sum(till_amount)"]);
}
}
function yesterdaySum() {
//connect to database
require 'connect.php';
// query
$query = "SELECT sum(till_amount) FROM Cash ";
$query .= "WHERE date ='2017-09-04'";
$result = mysqli_query($connect, $query);
// fetch
while($row = mysqli_fetch_assoc($result)) {
print_r($row["sum(till_amount)"]);
}
}
// PUTTING THEM INTO VARIABLE
$day = daySum(); // sum is 54000
$yesterday = yesterdaySum(); // sum is 51000
// adding $day plus $yesterday should print 105000
// and here is the problem...
print($day + $yesterday); // it prints 0
//WHY????
您的功能只是打印东西 。这就是为什么添加不起作用的原因。
您必须像下面那样更改您的代码( 也有一些改进,也有评论):
<?php
require 'connect.php'; //don't add multiple time
function daySum() {
$query = "SELECT sum(till_amount) FROM Cash WHERE date ='2017-09-05'";
$result = mysqli_query($connect, $query);
while($row = mysqli_fetch_assoc($result)) {
return $row["sum(till_amount)"]); //return value
}
}
function yesterdaySum() {
$query = "SELECT sum(till_amount) FROM Cash WHERE date ='2017-09-04'";
$result = mysqli_query($connect, $query);
while($row = mysqli_fetch_assoc($result)) {
return $row["sum(till_amount)"]); //return value
}
}
$day = daySum(); // now $day have value
$yesterday = yesterdaySum(); //now $yesterday have value
print((int)$day + (int)$yesterday); // it will work fine now
现在最简单的是 使用BETWEEN查询 :
<?php
require 'connect.php'; //don't add multiple time
function daySum() {
$query = "SELECT sum(till_amount) FROM Cash WHERE date BETWEEN '2017-09-04' AND '2017-09-05'";
$result = mysqli_query($connect, $query);
while($row = mysqli_fetch_assoc($result)) {
return $row["sum(till_amount)"]);
}
}
$day = daySum();
print($day);
注意:-也许这是您的家庭作业,但是从今天起开始学习prepared statements
,以防止您从SQL INJECTION
查询。这是重要且必要的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.