Php 实现if-else循环或else-if-and-can在循环中写入函数的正确方法

Php 实现if-else循环或else-if-and-can在循环中写入函数的正确方法,php,codeigniter,Php,Codeigniter,Blockquote block2 我是PHP新手,有人能告诉我在上面显示的代码中使用if/else或elseif的正确方法吗?它不能去第二个街区。另外,我是否可以在if/else块中编写函数?如果ifs检查查询是否有任何结果。如果有-执行If部分。如果没有-执行else部分(如果没有else,则不执行任何操作) 至于您关于函数的问题,您不能在if/else块中创建函数,但可以从中调用函数。您可以创建一个函数: $sql = "SELECT shoppe_id FROM

Blockquote block2


我是PHP新手,有人能告诉我在上面显示的代码中使用
if/else
elseif
的正确方法吗?它不能去第二个街区。另外,我是否可以在
if/else
块中编写函数?

如果
if
s检查查询是否有任何结果。如果有-执行
If
部分。如果没有-执行
else
部分(如果没有
else
,则不执行任何操作)

至于您关于函数的问题,您不能在
if/else
块中创建函数,但可以从中调用函数。您可以创建一个函数:

            $sql = "SELECT shoppe_id FROM atm_store WHERE user_id='$userId'";
            $query = $this->db->query($sql);
            if ($query->num_rows() > 0) {
                $result = $query->row();
                $storeId = $result->shoppe_id;
                $sql = "SELECT COALESCE(sum(commission),0) as commission FROM atm_store_commission WHERE shoppe_id ='$storeId'";
                $query = $this->db->query($sql);
                print_r($storeId);
                if ($query->num_rows > 0) {
                    $result = $query->row();
                    $commission = $result->commission;
                    return $commission;
                }
            }
        }
    }
}
您可以从
if
块调用它:

function total ($a, $b){
    return $a+$b;
}
编辑:关于你关于没有到达第二个街区的问题。在第二个块之前有一个
if
,如下所示:

if ($a==$b){
   $c = total ($a,$b);
}

if
检查是否有任何行从sql查询返回,该查询应返回符合条件
shoppe\u id='$shoppeId'
的第一个非空表达式。只有在没有返回行的情况下,它才会进入第二个块,这是此条件的
else

您是否在寻找类似以下内容:

$sql = "SELECT COALESCE(sum(commission),0) as commission FROM atm_shoppe_commission WHERE shoppe_id ='$shoppeId'";
        $query = $this->db->query($sql);
        print_r($shoppeId);
        if ($query->num_rows > 0) 

是的,类似于它…但是如果($store\u query->num\u rows()>0){$result=$query->row(),它将不会获取storeID$storeId=$result->shoppe\u id;谢谢jimy…但是假设我有几个函数,并且我需要为不同的函数使用相同的store\u id和shoppe\u id…如何实现它您可以在函数参数中传递它们或使它们成为全局变量(不推荐)如果你需要将变量传递给不同的函数,那么你需要用OOP重新设计它。我可以在if-else循环中编写一个函数toltal($user)吗?或者如果你有1$query->num\u rows()和其他的$query->num\u rows()那么这是一个输入错误还是故意的?为什么有时候是
$query->num rows
或者
$query->->num rows()
?蒂姆,这不是答案,应该是一条评论(有人已经评论过了),如果可能的话,我也会很乐意评论的,但我看不出有能力对主要问题发表评论。我开始键入这条评论时,没有其他评论。
$sql = "SELECT COALESCE(sum(commission),0) as commission FROM atm_shoppe_commission WHERE shoppe_id ='$shoppeId'";
        $query = $this->db->query($sql);
        print_r($shoppeId);
        if ($query->num_rows > 0) 
function toltalRetailerComm($userId) {
    //print_r ($shoppeId);
    $sql = "SELECT shoppe_id FROM atm_super_shoppe WHERE user_id='$userId'";
    $shoppe_query = $this->db->query($sql);

    $sql = "SELECT shoppe_id FROM atm_store WHERE user_id='$userId'";
    $store_query = $this->db->query($sql);

    if ($shoppe_query->num_rows() > 0) {
        $result = $shoppe_query->row();
        $shoppeId = $result->shoppe_id;

        $sql = "SELECT COALESCE(sum(commission),0) as commission FROM atm_shoppe_commission WHERE shoppe_id ='$shoppeId'";
        $query = $this->db->query($sql);
        print_r($shoppeId);
        if ($query->num_rows > 0) {
            $result = $query->row();
            $commission = $result->commission;
            return $commission;
        }
    } else if ($store_query->num_rows() > 0) {
                $result = $store_query->row();
                $storeId = $result->shoppe_id;
                $sql = "SELECT COALESCE(sum(commission),0) as commission FROM atm_store_commission WHERE shoppe_id ='$storeId'";
                $query = $this->db->query($sql);
                print_r($storeId);
                if ($query->num_rows > 0) {
                    $result = $query->row();
                    $commission = $result->commission;
                    return $commission;
                }
            }
        }