我以这种方式计算一个参数(X):
<?php
$link=mysql_connect("localhost","root","");
mysql_select_db("hand");
$result = mysql_query("select * from sessions",$link);
$num_calls = mysql_num_rows($result);
echo '<br/>'."'n Total X :'n $num_calls ".'<br/>';
?>
我正在以这种方式计算另一个参数(Y):
<?php
mysql_connect("localhost","root","");
mysql_select_db("hand");
$result = mysql_query("SELECT * FROM cars WHERE start_at > TIMESTAMPADD(WEEK, -4, CURDATE()) AND TIMESTAMPDIFF(MINUTE, start_at, end_at) > 5");
$num_rows = mysql_num_rows($result);
echo '<br/>'."'n Total Y :'n $num_rows ".'<br/>';
?>
在另一个地方,我需要计算口粮 X/Y。我该怎么做,因为它需要在同一 html 页面的另一个字段中完成。
你做:
$num_calls = intval($num_calls); // Make sure these are integers
$num_rows = intval($num_rows);
$calculation = $num_calls / $num_rows;
echo $calculation;
嗯首先,这是一种非常昂贵的计数方式。
Select Count(*) from Sessions
和
Select Count(*) from Cars...
所以像
Select Cast(Select Count(*) From Sessions) as FLOAT) / (Select Count(*) From Cars...)
应该让你接近。
然后你不需要费心坚持它,尽管如果你坚持,所有常用的机制都适用。
您可以将查询字符串放入如下所示的数组中:
$queryArray = array("select * from sessions", "SELECT * FROM cars WHERE start_at >
TIMESTAMPADD(WEEK, -4, CURDATE()) AND TIMESTAMPDIFF(MINUTE, start_at, end_at) > 5");
仅使用一次:
foreach($query in $queryArray)
{
$result = mysql_query($query);
$count = mysql_count($result);
$countList[] = $count
}
$number = 0;
现在,您需要从计数中的项目与另一个foreach
进行比率 foreach($number in $countList)
{<br/>
$number = $number + $number;
}<br/>
$ratio = $number / count($countList);
像这样,您可以将所有将来的查询添加为字符串,一切仍然有效。
附言我目前无法测试代码,但它应该非常实用。不太确定foreach as。
我想我明白了。
您需要 X:Y,其中 X 是与 Y 的比率:
$link=mysql_connect("localhost","root","");
mysql_select_db("hand");
$result = mysql_query("select * from sessions",$link);
$num_calls_x = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM cars WHERE start_at > TIMESTAMPADD(WEEK, -4, CURDATE()) AND TIMESTAMPDIFF(MINUTE, start_at, end_at) > 5");
$num_calls_y = mysql_num_rows($result);
echo '<br/>'."'n Total X :'n $num_calls_x ".'<br/>';
echo '<br/>'."'n Total Y :'n $num_calls_y ".'<br/>';
echo 'Ratio: '.round(($num_calls_x/ $num_calls_y) * 100, 0);
您可以将此值放入session/cookie并在另一个位置读取。