function toltalRetailerComm($userId) {
//print_r ($shoppeId);
$sql = "SELECT shoppe_id FROM atm_super_shoppe WHERE user_id='$userId'";
$query = $this->db->query($sql);
if ($query->num_rows() > 0) {
$result = $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 {
区块报价区块2
$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;
}
}
}
}
}
我是PHP新手,有人能告诉我在上面显示的代码中使用if/else
或elseif
的正确方法吗?它不能去第二个街区。此外,我可以在if/else
块内编写函数吗?
你在寻找这样的东西吗:
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;
}
}
}
每个if
都会检查查询是否有任何结果。如果存在-则执行if
部分。如果没有,则执行else
部分(如果没有else
,则不执行任何内容(。
关于函数的问题-你不能在if/else
块中创建函数,但你可以从中调用函数
function total ($a, $b){
return $a+$b;
}
您可以从if
块调用它:
if ($a==$b){
$c = total ($a,$b);
}
编辑:至于你关于无法进入第二个区块的问题。在第二个块之前有一个if
,如下所示:
$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)
if
检查sql查询是否返回了任何行,该查询应该返回条件shoppe_id ='$shoppeId'
之后的第一个非null表达式。只有在没有返回行的情况下,它才会到达第二个块,即此条件的else
。