Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 投票脚本在未进行投票时返回NaN_Php - Fatal编程技术网

Php 投票脚本在未进行投票时返回NaN

Php 投票脚本在未进行投票时返回NaN,php,Php,我正在使用GitHUB的投票脚本,一切正常,但如果没有投票,它会返回NaN: 我试图检查$rating1或$rating2是否为数字,如果不是,则将其设置为0,但这不起作用 我还尝试检查$当前\u评级: if(!is_numeric($current_rating)){ $current_rating = 0; } 代码如下: <?php function rating_bar($id,$units='',$static='') { require('_config-rati

我正在使用GitHUB的投票脚本,一切正常,但如果没有投票,它会返回NaN:

我试图检查$rating1$rating2是否为数字,如果不是,则将其设置为0,但这不起作用

我还尝试检查$当前\u评级

if(!is_numeric($current_rating)){
    $current_rating = 0;
}

代码如下:

<?php
function rating_bar($id,$units='',$static='') {

require('_config-rating.php');
include('inc/_dbcon.php');

$ip = $_SERVER['REMOTE_ADDR'];
if (!$units) {$units = 10;}
if (!$static) {$static = FALSE;}

$query = mysqli_query($conn, "SELECT total_votes, total_value, used_ips FROM ratings WHERE id = '{$id}';") or die (" Error: ".mysqli_error($conn));

if (mysqli_num_rows($query) == 0) {
    $sql    = "INSERT INTO ratings (id, total_votes, total_value, used_ips) VALUES ('$id', '0', '0', '')";
    $result = mysqli_query($conn, $sql);
}

$numbers = mysqli_fetch_assoc($query);

if ($numbers['total_votes'] < 1) {
    $count = 0;
} else {
    $count = $numbers['total_votes']; //how many votes total
}

$current_rating = $numbers['total_value']; //total number of rating added together and stored
$tense          = ($count==1) ? "röst" : "röster"; //plural form votes/vote
$voted          = mysqli_num_rows(mysqli_query($conn, "SELECT used_ips FROM ratings WHERE used_ips LIKE '%".$ip."%' AND id = '".$id."' "));

$rating_width = @number_format($current_rating/$count,2) * $rating_unitwidth;
$rating1      = @number_format($current_rating/$count,1);
$rating2      = @number_format($current_rating/$count,2);


if ($static == 'static') {
        $static_rater = array();
        $static_rater[] .= "\n".'<div class="ratingblock">';
        $static_rater[] .= '<div id="unit_long'.$id.'">';
        $static_rater[] .= '<ul id="unit_ul'.$id.'" class="unit-rating" style="width:'.$rating_unitwidth * $units.'px;">';
        $static_rater[] .= '<li class="current-rating" style="width:'.$rating_width.'px;">Currently '.$rating2.'/'.$units.'</li>';
        $static_rater[] .= '</ul>';
        $static_rater[] .= '<p class="static">'.$id.'. Röster: <strong> '.$rating1.'</strong>/'.$units.' ('.$count.' '.$tense.' lagda) <em>This is \'static\'.</em></p>';
        $static_rater[] .= '</div>';
        $static_rater[] .= '</div>'."\n\n";

        return join("\n", $static_rater);
} else {
      $rater ='';
      $rater.='<div class="ratingblock">';

      $rater.='<div id="unit_long'.$id.'">';
      $rater.='  <ul id="unit_ul'.$id.'" class="unit-rating" style="width:'.$rating_unitwidth * $units.'px;">';
      $rater.='     <li class="current-rating" style="width:'.$rating_width.'px;">Förnärvarande '.$rating2.'/'.$units.'</li>';

      for ($ncount = 1; $ncount <= $units; $ncount++) { // loop from 1 to the number of units
           if(!$voted) { // if the user hasn't yet voted, draw the voting stars
              $rater.='<li><a href="/db.php?j='.$ncount.'&amp;q='.$id.'&amp;t='.$ip.'&amp;c='.$units.'" title="'.$ncount.' av '.$units.'" class="r'.$ncount.'-unit rater" rel="nofollow">'.$ncount.'</a></li>';
           }
      }
      $ncount=0; // resets the count

      $rater.='  </ul>';
      $rater.='  <p';
      if($voted){ $rater.=' class="voted"'; }
      $rater.='>Röster: <strong> '.$rating1.'</strong>/'.$units.' ('.$count.' '.$tense.' lagda)';
      $rater.='  </p>';
      $rater.='</div>';
      $rater.='</div>';
      return $rater;
 }
}
?>

我似乎已经通过向$rating1添加intval解决了这个临时问题,如下所示:

$rating1 = @number_format(intval($current_rating/$count,1));

为什么不能检查一下
$rating1
是否为
NaN
。如果是这样,请将其更改为
0
。请参阅:@Red-Bottle我已经尝试过了,但不起作用,它仍然返回nan。@Dharman您认为这部分如何?如果(mysqli_num_rows($query)==0){$sql=“插入评级(id、总投票数、总值、已用IP)值('$id'、'0'、'')或死亡($Error:.mysqli_Error($conn));$result=mysqli_query($conn,$sql);}