-1

我正在以这种方式计算一个参数(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 页面的另一个字段中完成。

4

5 回答 5

3

你做:

$num_calls = intval($num_calls); // Make sure these are integers
$num_rows = intval($num_rows);

$calculation = $num_calls / $num_rows;
echo $calculation;
于 2012-06-25T20:51:01.587 回答
1

好的,我我明白了。

您想要 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);
于 2012-06-25T20:54:49.783 回答
1

嗯首先,这是一种非常昂贵的计数方式。

Select Count(*) from Sessions

Select Count(*) from Cars...

所以像

Select Cast(Select Count(*) From Sessions) as FLOAT) / (Select Count(*) From Cars...)

应该让你接近。

然后你不需要费心坚持它,但如果你坚持,所有通常的机制都适用。

于 2012-06-25T20:57:10.337 回答
1

您可以将查询字符串放入这样的数组中:
$queryArray = array("select * from sessions", "SELECT * FROM cars WHERE start_at > TIMESTAMPADD(WEEK, -4, CURDATE()) AND TIMESTAMPDIFF(MINUTE, start_at, end_at) > 5");
只使用一次 foreach:
foreach($query in $queryArray) { $result = mysql_query($query); $count = mysql_count($result); $countList[] = $count }
$number = 0;
现在您需要使用另一个 foreach 从 count 的项目中得出比率
foreach($number in $countList) {<br/> $number = $number + $number; }<br/> $ratio = $number / count($countList);

像这样,您可以将所有未来的查询添加为字符串,一切仍然有效。

PS 我目前无法测试代码,但它应该非常实用。不太确定foreach as。

于 2012-06-25T21:01:43.613 回答
-1

您可以将此值放入 session/cookie 并在另一个地方读取它。

于 2012-06-25T20:52:01.767 回答