【问题标题】:PHP Sql Check if foreachPHP Sql 检查是否为 foreach
【发布时间】:2015-12-05 03:29:08
【问题描述】:

我想检查我的数据库中的任何用户在 categorie_bit 中的值是否为 0 或 1,并在我的 foreach 之前检查它。

我在我的 php 脚本中得到了这个:

foreach ($database->query('SELECT id,firstname,lastname FROM `staff` WHERE categorie_bit = 1') as $resultRandom) {
    var_dump($resultRandom);
}

伪代码(我想要这样的东西):

if(categorie_bit = 1) {
    foreach ($database->query('SELECT id,firstname,lastname FROM `staff` WHERE categorie_bit = 1') as $resultRandom) {
        var_dump($resultRandom);
    }
} else {
      echo "0";
}

【问题讨论】:

  • 我不明白你的意思
  • 不确定您的伪代码是否有意义。你能用英语描述你想做什么吗?
  • 当然,我想检查我的数据库中是否有任何用户在我的 foreach 之前的 categorie_bit 中的值是 0 或 1。
  • 你不能检查数据库表中列的值之前你已经读取了行从表再次没有意义
  • 所以我必须将条件放在我的 foreach 中并检查 categoire_bit 是 1 还是 0

标签: php sql foreach phpmyadmin


【解决方案1】:

您可以通过使用 while 循环而不是 foreach 进行迭代来实现相同的目的。在每次迭代中,$row 变量是表中的行:

$result = $database->query('SELECT * FROM `staff`');

while($row = $result->fetch_array(MYSQLI_ASSOC)) { 

    if($row['categorie_bit'] == 0) {
        //Do something for 0's
    }    
    if($row['categorie_bit'] == 1) {
        //Do something for 1's
    }

}

【讨论】:

  • 我认为这可能是 OP 想要做的,但以防万一类别位可以有其他值,我稍微更改了代码。希望你不要介意。
  • 你的猜测和我的一样好!关于其他可能值的好点,我只是假设 1 或 0。谢谢!
【解决方案2】:

“当然,我想检查我的数据库中的任何用户在我的 foreach 之前的 categorie_bit 中是否有 0 或 1 的值”

在你的 SQL 中怎么样

... WHERE categorie_bit = 1 OR categorie_bit = 0

或者,这会检查是否设置了categorie_bit(假设它可以是0、1或NULL)

WHERE categorie_bit IS NOT NULL

【讨论】:

    猜你喜欢
    • 2016-02-17
    • 2020-08-06
    • 1970-01-01
    • 2011-02-25
    • 2016-02-13
    • 1970-01-01
    • 2011-09-30
    • 2011-06-03
    • 2022-08-17
    相关资源
    最近更新 更多