在这种情况下,我可以使用if on foreach吗?

时间:2016-09-30 17:07:17

标签: php mysqli

我有一点问题,我试图从mysql表中读取值。我做过研究,无法找到明确或确凿的答案。我将描述问题:

  1. 使用例如性别=女性的地方从mysql表中选择数据。
  2. 计算结果并返回计数 - 只是为了帮助知道找到了多少记录
  3. 比较表格中的值,例如'take'和'available',
  4. 第一条记录中的
  5. if 'taken' = 'available',转到下一条记录(并再次进行比较),如果不执行特定操作,则可以更新或插入或任何类型的操作。
  6. 前三个是好的,唯一的问题是,第4部分。请帮忙。这是一个php问题。期待您的帮助。

2 个答案:

答案 0 :(得分:0)

正如所说的那样,如果你只是想跳过记录,那么你也可能不会在第一时间检索它们(因而招致将它们提取到PHP内存中的开销等):

SELECT * FROM `your_table` WHERE `gender` = 'female' AND `taken` = `available`;

但是,如果您有特定的理由这样做,您只能执行以下操作:

foreach ($hotels as $hotel) {
    // skip if the item is not available, logic can be changed if necessary
    if ($hotel->taken >= $hotel->available) continue;

    // do the other work here...
}

我在这里解释了你的情况,假设你想跳过那些不“可用”的人。虽然它看起来像你想要的相反,在这种情况下你可以将sql中的逻辑从!=切换到=,在php中从!=切换到==。 / p>

已更新:要反映所做的其他评论。

答案 1 :(得分:0)

使用mysqli或使用PDO创建与数据库的连接。

$db = new PDO($mysqlhost,$username,$password);
$statement = $db->prepare($sqlstatement);
$rows = $statement->execute();
foreach($rows->fetch() as $row)
{
    if($row['column_name']==something)
{
   //do work
}
else
{
  //do work
}
}