使用if、elseif及else,不进判断直接输出else里的,是数据库表头类型问题还是语句错误?





使用if、elseif及else,不进判断直接输出else里的,是数据库表头类型问题还是语句错误?




希望各位能给予帮助!




以下是语句:




$sql="select * from `shipin` where id =".$zyid;
$result=mysql_query($sql,$conn);
$shipin=mysql_fetch_array($result);
$sql="select * from `peizhi` where id =1";
$user=queryall(user,$type);
$peizhi=queryall(peizhi,"where id='1'");
$totalMoney=$ubomoney;


if($peizhi[al]>0){
if(($peizhi[al]=="1")or($user[al]=="1")){
      if($shipin){
        $shipin=queryall(shipin,"where id='$zyid'");
        if(intval($shipin[al])){
            $totalMoney=$shipin[al];//金额 自定义
              }
        }
}elseif(($peizhi[al]=="2")or($user[al]=="2")){
   $shipin=queryall(shipin,"where id='$zyid'");
    if($shipin['is_lei']==1){
            $totalMoney=$ubomoney*100;//金额 百倍       
    }
  }
}else{
        $shipin=queryall(shipin,"where id='$zyid'");
            $totalMoney=$ubomoney;//正常
} 





$peizhi[al]是总开关,设置0/1/2分别为正常、自定义、百倍。


$user[al]是单独控制开关,设置0/1/2分别为正常、自定义、百倍。





执行的话不走if($peizhi[al]>0 里的判断··而是直接走else的。怎么破?



以下数据库详情:





peizhi表:
peizhi表




shipin表:
shipin表




user表:
user表

是我语句有问题这样就好了···但是又出现新问题·····

我想实现总开关peizhi为1的时候执行user为2的结果·总开关peizhi为2的时候执行user为1的结果·

现在的情况是总开关peizhi为2的时候执行user为1的结果是正常的!总开关peizhi为1的时候执行user为2的结果却不正常··执行的是配置为1的结果···是逻辑问题吗?改怎么修改?我试了半天没弄明白···谢谢!

https://www.52pojie.cn/thread-861129-1-1.html

打印看看$peizhi的结果再往if下面走

peizhi表:数据库设计时允许为空,当未设置al值时不会大于0所以直接执行 else了

$peizhi=queryall(peizhi,"where id='1'");
这一句queryall方法没有原型我无法判断是不是这里没有取得值
您可打印一下 echo $peizhi 看有什么值