【问题标题】:IF statement doesn't work within while loop - not sure if the conditions are right? [duplicate]IF 语句在 while 循环中不起作用 - 不确定条件是否正确? [复制]
【发布时间】:2019-12-01 05:35:00
【问题描述】:

我正在尝试从数据库中回显条目,这些条目的lend_status 为 1 或 2,并编写了我的 while 循环来获取条目,但我不确定我的 IF 语句是否正确,或者这是否是最好的方法去做这件事。我对 PHP 和 SQL 非常陌生,因此非常感谢任何帮助!

我尝试使用 echo 来查看它在哪里中断,它似乎是 IF 语句。我知道与数据库的连接有效,因为我可以从中回显信息并对其进行测试。

<?php

// WHILE LOOP TO LOOK THROUGH THE DIFFERENT ROWS
$STH = $DBH->prepare("SELECT * FROM laptop_system");
// DOESN'T HAVE TO BE AN ARRAY BUT GOOD PRACTICE TO PUT THIS IN (BELOW)
$STH->execute(array());
// WHILE LOOP TO LOOK THROUGH THE DIFFERENT ROWS


while ($row = $STH->fetch()) {
    $lend_status = $row->lend_status;
    $lend_id = $row->lend_id;
    $requestee = $row->user_id;
    $first_name = $row->first_name;
    $last_name = $row->last_name;

    $active_status = array(1,2);

if($lend_status == $active_status) {

      echo 'hello';
?>

<div>
<?php echo $requestee_name . '\n'; ?>

<?php echo 'hi'; ?>

</div>
<?php }} ?>

【问题讨论】:

  • 你可以做if(in_array($lend_status,$active_status)) {

标签: php sql loops while-loop


【解决方案1】:

问题是您正在将字符串/整数(数据库行的字段之一)与数组进行比较:

$lend_status = $row->lend_status;
...
$active_status = array(1,2);

if($lend_status == $active_status) {

如果要检查状态是否是数组中的值之一,可以使用例如in_array()

if (in_array($lend_status, $active_status)) {

【讨论】:

  • 非常感谢,这正是我所需要的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-26
  • 2013-08-16
  • 2018-03-28
  • 2014-07-01
相关资源
最近更新 更多