我是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;
}
}
帮帮我!
这段代码永远不会成为现实
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_cat
吗?还是为了proof_cat
和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;
}
}
一个字符串不能等于 2 个不同的值,我假设你想要一个逻辑 OR (||
( 运算符而不是 AND (&&
(。
执行此操作的一种简洁方法是使用in_array,尤其是具有 2 个以上值:
if (in_array($row_proof['proof_cat'], ["Proof of Address", "Proof of Identity"])) {
如果我没有误解您的代码,那么您需要此$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;
}
}
我