如果在获取期间数据为空或空,则PHP Mysqli替换逗号

时间:2015-07-30 09:48:51

标签: php mysql mysqli

如果所选内容的数据为空,那么在我获取数据时会出现问题,那么当数据为空或空时,“(,)”显示我想要的是“,”没有出现我无法做到的事。

说我正在选择数据 ID 1 ,2 ,3 ID为1 Num 6789,ID 2没有Num且ID为12345

 $query="SELECT  Num FROM euser WHERE UserId IN (SELECT ID FROM master WHERE  aa='aa' And cc='cc')" ;
        $data=mysqli_query($mysqli,$query)or die(mysqli_error());
        $Num = array();
        while($row=mysqli_fetch_array($data)){
            $Num[] = $row['Num'];

        }
        $NumStr = implode(',', $Num);


        echo $NumStr;

    mysqli_close($mysqli);

现在输出

6789,,12345

期待输出

6789,12345

3 个答案:

答案 0 :(得分:3)

使用isset()

while ($row = mysqli_fetch_array($data)) {
    if (isset($row['Num']) && $row['Num'] != "") {
        $Num[] = $row['Num'];
    }
}
$NumStr = implode(',', $Num);

答案 1 :(得分:2)

用以下代码替换您的代码。

添加了空白和NULL的检查。

$query="SELECT  Num FROM euser WHERE UserId IN (SELECT ID FROM master WHERE  aa='aa' And cc='cc')" ;
        $data=mysqli_query($mysqli,$query)or die(mysqli_error());
        $Num = array();
        while($row=mysqli_fetch_array($data)){
            if($row['Num'] != '' && $row['Num'] != NULL){
            $Num[] = $row['Num'];
            }    
        }
        $NumStr = implode(',', $Num);    

        echo $NumStr;    
        mysqli_close($mysqli);

答案 2 :(得分:2)

 $query="SELECT  Num FROM euser WHERE UserId IN (SELECT ID FROM master WHERE  aa='aa' And cc='cc')" ;
        $data=mysqli_query($mysqli,$query)or die(mysqli_error());
        $Num = array();
        while($row=mysqli_fetch_array($data)){
            $Num[] = $row['Num'];

        }
        $final_arr = array_filter($Num);
        $NumStr = implode(',', $final_arr);

        echo $NumStr;    
        mysqli_close($mysqli);

您只需使用“array_filter”函数从数组中删除空/空值。