我有一个带有两个mysql查询的php文件,每个查询都有一个if语句。我希望最终输出结合两个结果并用逗号分隔。现在,第一个if语句正在工作,但第二个不是。
$result = mysql_query("SELECT round(AVG(cop),1) AS 'avg_cop' FROM table WHERE timestamp >= subdate((select max(timestamp) from table), interval 1 week)");
if ($result < 3.41)
{
$ret = "example text 1";
} else {
$ret = "na";
}
$result1 = mysql_query("SELECT round(AVG(temp),1) AS 'avg_temp' FROM table WHERE timestamp >= subdate((select max(timestamp) from table), interval 1 week)");
if ($result1 < 53)
{
$ret1 = "example text 2";
} else {
$ret1 = "na";
}
echo $ret.", ".$ret1;
在这个例子中,我知道第一个查询的结果为“1.1”,第二个查询结果为“69.4”。但是,我得到的最终结果是“示例文本1,示例文本2”,它应该是“示例文本1,na”。关于我做错了什么想法?
答案 0 :(得分:0)
$ result和$ result1当前是字符串。你想添加:
$result = mysql_query("SELECT ... // unchanged");
$result = floatval($result)
if ($result < 3.41)
和$ result1
$result1 = mysql_query("SELECT ... // unchanged");
$result1 = floatval($result1)
if ($result1 < 53.0) // note the addition of the .0 to compare one float to another
答案 1 :(得分:0)
mysql_query
不会返回您需要传递给it returns a resource或mysql_fetch_array()等函数的行本身mysql_fetch_assoc()来处理表格结果;你不能只是简单地使用mysql_query的返回值。
如果您只是将SQL查询合并为一个,那也可能会更好。
$result = mysql_query("SELECT round(AVG(cop),1) AS 'avg_cop', round(AVG(temp),1) AS 'avg_temp' FROM table WHERE timestamp >= subdate((select max(timestamp) from table), interval 1 week)");
$row = mysql_fetch_assoc($result);
if ($row['avg_cop'] < 3.41)
{
$ret = "example text 1";
} else {
$ret = "na";
}
if ($row['avg_temp'] < 53)
{
$ret1 = "example text 2";
} else {
$ret1 = "na";
}
echo $ret.", ".$ret1;
答案 2 :(得分:0)