【问题标题】:PHP - How to Change Results from While Loop if Any Row Result MatchesPHP - 如果任何行结果匹配,如何从 While 循环更改结果
【发布时间】:2019-08-05 21:58:11
【问题描述】:

我已经为此寻找了结果,但似乎找不到任何处理这个特定问题的东西......

我正在使用 while 循环从我的 MySQL 表中生成 HTML 模板。

一切正常,但我不知道如何说“如果从 while 循环返回的任何行结果等于 'true',请将其更改为 'checked'。

所以我有例如:

$result = mysqli_query($conn, "SELECT * FROM hardware_requests");


    while($row = mysqli_fetch_array($result)) {       

     echo "<input  type='checkbox' " . $row["checkbox1"] . "/>
           <input  type='checkbox' " . $row["checkbox2"] . "/> ";

    }

$row[checkbox1] 的结果为 'true',$row[checkbox2] 的结果为空(在表格中该单元格没有条目)

对于我的一生,我无法弄清楚如何在 while 循环中执行以下操作:

if ($row[] == 'true') {

   $row[] = 'checked';

}

使用 $row[] 检查数据库中的每条记录。

...

我已对此进行了编辑(最初 HTML 中“checkbox1”和“checkbox2”周围的引号丢失了...

为了更清楚地说明,最初设置代码的开发人员将前端的复选框勾选输入数据库为“真”(现在有一个相当强大的已填写复选框的数据库)。

我正在尝试完成的某些部分有 30 多个复选框,我希望能够为输入的 HTML 代码设置“已检查”属性(在设置将成为跟踪系统的东西时)根据数据库的输入完成了什么)。

因此不必单独设置每个复选框,即

$row["checkbox1"] = 'checked',
$row["checkbox2"] = 'checked'

最多 30 多个复选框,我希望循环遍历每一行并使用 if 语句找出当前等于“真”,如果是,则更改为“已检查”。

再次感谢您的帮助!

【问题讨论】:

  • 您在$row[checkbox1] 中缺少引号
  • 您的表中有多少列?您没有列出它们...
  • 如果你知道$row['checkbox2']是空的,为什么还要输出呢?
  • 我不确定,但你只需要简单地将'true'更改为'checked'? “

标签: php mysql while-loop


【解决方案1】:

一种可能性是将布尔值转换为查询中的字符串。

$result = mysqli_query($conn,
 "SELECT
   IF(checkbox1,'checked','') AS checkbox1,
   IF(checkbox2,'checked','') AS checkbox2
 FROM hardware_requests");

然后您的模板可以保持不变。不过,您应该引用这些数组键。

while($row = mysqli_fetch_array($result)) {
     echo "<input  type='checkbox' " . $row['checkbox1'] . "/>
           <input  type='checkbox' " . $row['checkbox2'] . "/> ";
}

【讨论】:

    【解决方案2】:

    您可以使用条件表达式。

    while($row = mysqli_fetch_array($result)) {       
         echo "<input  type='checkbox' " . ($row['checkbox1'] == "true" ? "checked" : "")  . "/>
               <input  type='checkbox' " . ($row['checkbox2'] == "true" ? "checked" : ""). "/> ";
    }
    

    【讨论】:

      猜你喜欢
      • 2015-02-14
      • 1970-01-01
      • 1970-01-01
      • 2019-04-21
      • 1970-01-01
      • 2014-12-05
      • 2019-12-19
      • 2018-06-29
      • 1970-01-01
      相关资源
      最近更新 更多