Php 检查值是否为零不会插入到数据库中,如果不是零,则会插入到数据库中

Php 检查值是否为零不会插入到数据库中,如果不是零,则会插入到数据库中,php,mysql,sql,Php,Mysql,Sql,如何检查值是否为零不会插入数据库,但如果不是零,则会插入数据库 下面是我的代码片段,让事情更清楚: $SearchData = $this->redis->hmget($searchCohortKey, $DateRange); $NaturalClickData = $this->redis->hmget($naturalClickCohortKey, $DateRange); $AdClickData = $this->redis->

如何检查值是否为零不会插入数据库,但如果不是零,则会插入数据库

下面是我的代码片段,让事情更清楚:

    $SearchData = $this->redis->hmget($searchCohortKey, $DateRange);
    $NaturalClickData = $this->redis->hmget($naturalClickCohortKey, $DateRange);
    $AdClickData = $this->redis->hmget($adClickCohortKey, $DateRange);
    $uninstallData = $this->redis->hmget($uninstallKey, $DateRange);
    $count = count($DateRange);

   for ($i = 0; $i < $count; $i++) {
         $dataRedis = array(
            'app_id' => $appId,
            'searches' => empty($SearchData[$i]) ? 0 : $SearchData[$i],
            'clicks' => empty($NaturalClickData[$i]) ? 0 : $NaturalClickData[$i],
            'adclicks' => empty($AdClickData[$i]) ? 0 :$AdClickData[$i],
            'uninstalls' => empty($uninstallData[$i]) ? 0 : $uninstallData[$i],
            'date' => $DateRange[$i],
            'key' => $searchCohortKey
        );
        $this->redis_search_value_model->insert($dataRedis);
   }
$SearchData=$this->redis->hmget($searchCohortKey,$DateRange);
$NaturalClickData=$this->redis->hmget($naturalClickCohortKey,$DateRange);
$AdClickData=$this->redis->hmget($adClickCohortKey,$DateRange);
$uninstallData=$this->redis->hmget($uninstallKey,$DateRange);
$count=计数($DateRange);
对于($i=0;$i<$count;$i++){
$dataRedis=array(
'app_id'=>$appId,
“搜索”=>空($SearchData[$i])?0:$SearchData[$i],
'单击'=>空($NaturalClickData[$i])?0:$NaturalClickData[$i],
'adclicks'=>空($AdClickData[$i])?0:$AdClickData[$i],
'uninstalls'=>空($uninstallData[$i])?0:$uninstallData[$i],
“日期”=>$DateRange[$i],
“key”=>$searchCohortKey
);
$this->redis\u search\u value\u model->insert($dataRedis);
}

我只需要在数据库中保存不为零或空的值

您的问题有点不清楚,但以下是我认为您希望实现的目标,您可以根据需要修改条件

$SearchData = $this->redis->hmget($searchCohortKey, $DateRange);
    $NaturalClickData = $this->redis->hmget($naturalClickCohortKey, $DateRange);
    $AdClickData = $this->redis->hmget($adClickCohortKey, $DateRange);
    $uninstallData = $this->redis->hmget($uninstallKey, $DateRange);
    $count = count($DateRange);

   for ($i = 0; $i < $count; $i++) {
         $dataRedis = array(
            'app_id' => $appId,
            'searches' => empty($SearchData[$i]) ? 0 : $SearchData[$i],
            'clicks' => empty($NaturalClickData[$i]) ? 0 : $NaturalClickData[$i],
            'adclicks' => empty($AdClickData[$i]) ? 0 :$AdClickData[$i],
            'uninstalls' => empty($uninstallData[$i]) ? 0 : $uninstallData[$i],
            'date' => $DateRange[$i],
            'key' => $searchCohortKey
        );
        /*Here's the code to  check if the values are  not  zero, 
     it won't insert the data if  even of the 'searches' Or 'clicks' or adclicks
     have a value of 0*/

        if($dataRedis['searches'] != 0 && $dataRedis['clicks'] != 0 && $dataRedis['adclicks'] != 0)
        {
            $this->redis_search_value_model->insert($dataRedis);
        }
   }
$SearchData=$this->redis->hmget($searchCohortKey,$DateRange);
$NaturalClickData=$this->redis->hmget($naturalClickCohortKey,$DateRange);
$AdClickData=$this->redis->hmget($adClickCohortKey,$DateRange);
$uninstallData=$this->redis->hmget($uninstallKey,$DateRange);
$count=计数($DateRange);
对于($i=0;$i<$count;$i++){
$dataRedis=array(
'app_id'=>$appId,
“搜索”=>空($SearchData[$i])?0:$SearchData[$i],
'单击'=>空($NaturalClickData[$i])?0:$NaturalClickData[$i],
'adclicks'=>空($AdClickData[$i])?0:$AdClickData[$i],
'uninstalls'=>空($uninstallData[$i])?0:$uninstallData[$i],
“日期”=>$DateRange[$i],
“key”=>$searchCohortKey
);
/*下面是检查值是否为零的代码,
即使是“搜索”或“点击”或“广告点击”,它也不会插入数据
值为0*/
如果($dataRedis['Searchs']!=0&&$dataRedis['clicks']!=0&&$dataRedis['adclicks']!=0)
{
$this->redis\u search\u value\u model->insert($dataRedis);
}
}

如果($x!=0)…
您的代码不会让它变得更清晰,但会让它变得更糟。您似乎在向redis而不是mysqlthis插入($this->redis\u search\u value\u model->insert($dataRedis);)只是一个mysql函数,而不是redis插入函数
array\u filter($dataRedis)如果您只想清除零值
if(count(array_filter($dataRedis))==count($dataRedis)){…}
如果您只想保存没有零值的记录。