【问题标题】:multiple if condition php多个if条件php
【发布时间】:2018-08-31 16:02:36
【问题描述】:

我是 PHP 新手,我正在制作这个页面,如果记录中有任何值,我想显示数据库中的记录。我正在使用If condition,但是它不起作用。这是我的代码:

 $active_proof=FALSE;
 while ($row_proof = mysqli_fetch_assoc($res_proof)){

if ($row_proof['proof_cat'] == "Proof of Address"  && $row_proof['proof_cat'] == "Proof of Identity"  ){

           echo '<tr>

                <td>'.$row_proof['proof_cat'].'</td>
                <td>'.$row_proof['proof_doc'].'</td>

            </tr>';
            $active_proof = TRUE;
        }else{
        $active_proof  = FALSE;
    }

    }

帮帮我!

【问题讨论】:

  • intead && make ||
  • 一个字符串不能等于 2 个不同的值
  • @DieterKräutl 不工作。
  • @Devon 那我该怎么办?
  • @SaumayPaul 如果这不起作用,您确定 proof_cat 等于其中一个字符串吗?把它倒出来检查一下

标签: php if-statement mysqli while-loop


【解决方案1】:

这段代码永远不会成真

if ($row_proof['proof_cat'] == "Proof of Address"  && $row_proof['proof_cat'] == "Proof of Identity"  ){

作为单列“proof_cat”不能携带 2 个值。如果你的意思是 OR 那么它会变成

if ($row_proof['proof_cat'] == "Proof of Address"  || $row_proof['proof_cat'] == "Proof of Identity"  ){

【讨论】:

  • 如果我为每种类型的 PROOF 创建了两个不同的行,那么如何验证呢?
  • @SaumayPaul 你能澄清你的问题,以便我能更好地回答你吗?每种类型的证明有 2 行不同的行是什么意思?
【解决方案2】:

您确定要检查 proof_cat 的两个值吗?或者proof_catproof_doc ??我觉得应该是……

$active_proof=FALSE;
 while ($row_proof = mysqli_fetch_assoc($res_proof)){

if (($row_proof['proof_cat'] == "Proof of Address")  && ($row_proof['proof_doc'] == "Proof of Identity"  )){

       echo '<tr>

            <td>'.$row_proof['proof_cat'].'</td>
            <td>'.$row_proof['proof_doc'].'</td>

        </tr>';
        $active_proof = TRUE;
    }else{
    $active_proof  = FALSE;
    }

 }

【讨论】:

  • 请始终解释您的答案,不要只包含代码块。
【解决方案3】:

一个字符串不能等于 2 个不同的值,我假设您需要一个逻辑 OR (||) 运算符而不是 AND (&amp;&amp;)。

使用 in_array 的一种简洁方法是使用 in_array:

if (in_array($row_proof['proof_cat'], ["Proof of Address", "Proof of Identity"])) {

【讨论】:

    【解决方案4】:

    如果我没有误解你的代码,那么你需要这个 $row_proof['proof_cat']$row_proof['proof_doc'] 而不是两个 $row_proof['proof_cat'] 来检查“地址证明”和“身份证明”,因为这是不可能的。所以我认为你在这里做了一些错字,这就是它不适合你的原因。

    但是,如果您只想检查 任何值是否等于 $row_proof['proof_cat'],请使用 in_array() 代替,如下所示

    如果你想检查任何等于

    if (in_array($row_proof['proof_cat'], ["Proof of Address", "Proof of Identity"])) {
     //your code will goes here
    }
    

    如果是错字:为什么我将其解释为错字

    你的这个代码块告诉我认为它是一个错字。

    '.$row_proof['proof_cat'].'

    '.$row_proof['proof_doc'].'

     $active_proof=FALSE;
     while ($row_proof = mysqli_fetch_assoc($res_proof)){
    
    if ($row_proof['proof_cat'] == "Proof of Address"  && $row_proof['proof_doc'] == "Proof of Identity"  ){
    
               echo '<tr>
    
                    <td>'.$row_proof['proof_cat'].'</td>
                    <td>'.$row_proof['proof_doc'].'</td>
    
                </tr>';
                $active_proof = TRUE;
            }else{
            $active_proof  = FALSE;
        }
    
        }
    

    【讨论】:

      猜你喜欢
      • 2011-06-16
      • 2017-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-29
      • 2016-01-20
      • 2015-02-07
      相关资源
      最近更新 更多