我想检查数据库中是否有一个小时,但如果我在数据库中有超过一小时,则输出两次,如果我有三次...
在这种特殊情况下,这给了我:9(蓝色)然后9(红色)
$result = mysqli_query($con, 'SELECT * FROM consulta
WHERE professional=1
AND client=0');
while ($row = mysqli_fetch_array($result)) {
if ($row['hora']=='09:00:00') { echo '<p class="blue">9</p>'; }
else { echo '<p class="red">9</p>'; }
}
我有一个包含列的MySql数据库:id,professional和hour。我已经存储了2个小时,如果我回复$row['hora'] 09:00:00 and 10:00:00
在这种情况下,if应该只给我9个蓝色,因为它在数据库中。我不明白为什么会这样。我该如何解决这个问题?
这是MySql数据库的结构:
答案 0 :(得分:2)
据推测,您正在制作日历等。
您正在使用的查询将返回所有行(无论小时数如何,您都会循环遍历每一行)。如果你想检查是否存在特定的小时,你可以建立一个小时数组:
$result = mysqli_query($con, 'SELECT * FROM consulta
WHERE professional=1
AND client=0');
$hours = array();
while ($row = mysqli_fetch_array($result)) {
$hours[$row['hora']] = $row;
}
现在检查我们可以做的具体时间:
if (!empty($hours['09:00:00'])) {
echo '<p class="blue">9</p>';
}else {
echo '<p class="red">9</p>';
}
编辑:说明
在第一个循环中,我们正在构建一个数组。这看起来像是:
$hours = array(
'08:00:00' => $dataForThisRow,
'09:00:00' => $dataForThisRow
);
上面的'08:00:00'
被称为key
。每个密钥都是在数据库中找到的时间。
要检查数据库中是否有条目,我们可以检查是否存在非空键。因此我们使用:
if(!empty($hours['09:00:00'])
如果if
的{{1}}的值为$hours
,则此key
将会运行。如果没有密钥,那么'09:00:00'
的其他部分将会运行。
答案 1 :(得分:0)
更改您的SQL查询,如下所示:
$query = "SELECT TIME_FORMAT(hora,'%H:%i:%S') FROM consulta
WHERE professional=1
AND client=0";
$result = mysqli_query($con, $query);
答案 2 :(得分:0)
您正在与此值进行比较:09:00:00,但数据库似乎已存储此另一个:9:00:00