PHP没有给我一个数字类型

时间:2010-04-24 02:09:45

标签: php mysql floating-point

我尝试按照此问题中的说明操作:STAR rating with css 但我只是一个大问题。

当我这样做时:

<span class="stars">1.75</span>

$foo='1.75';
echo '<span class="stars">'.$foo.'</span>

星星正确显示,但我一做到了:

while($val = mysql_fetch_array($result)) 
{  
$average =  ($val['services'] + $val['serviceCli']  + $val['interface'] + $val['qualite'] + $val['rapport'] )  / 5 ;

<span class="stars">.$average.</span>
}

星星停止工作

我仔细检查了mysql中的数据类型:
他们都是TINYINT(2)

我试过这个:

$average = intval($average);

但它仍无效,

2 个答案:

答案 0 :(得分:1)

我认为您的问题可能是您拥有的值大于该示例中允许的值。

您要做的是对项目进行加权,使$average的总数小于或等于5.

$average = (
    ( $val['services'] / $maxServices )
    + ( $val['serviceCli'] / $maxServiceCli )
    + ( $val['interface'] / $maxInterface )
    + ( $val['qualite'] / $maxQualite )
    + ( $val['rapport'] / $maxRapport )
);

加权可以是均匀的,因此每个值都会小于或等于1,或者它们可能具有不同的权重,因此services的价值超过qualite(依此类推)。

答案 1 :(得分:0)

不,var_dump($val)给了我从我的大请求中获得的所有值(text,varchar,int)[例如:

array(38) { [0]=>  string(28) "http://www.crystal-serv.com/" 
["siteweb"]=>  string(28) "http://www.crystal-serv.com/" 
[1]=>  string(1) "0" ["offreDedie"]=>  string(100) 
"tick rouge" [2]=>  string(1) "0" ["coupon"]=> 

..........