我在MySql数据库中存储了客户花费的小时数。现在我想按照9,9,30,10,10,30的顺序在网上显示所有小时(和半小时)...并显示哪些小时数和女巫免费。这里的代码只适用于我在数据库中有一个小时。如果我在网络数据库中有两个小时它会重复所有小时两次,如果我在数据库中有3个小时它会重复3次...例如我在数据库中有9:00:00和10:00: 00,第一次给出红色的9,第二次给出红色的10:09:00:00,“09:30:00”,“10:00:00”,“10:30” :00 9点00" 分○○秒, “9时三十〇分00秒”, “10:00:00”,“10时三十分00秒
我不明白有什么不对?我怎么能把我们所有的都整理好一次呢?$result = mysqli_query($con, 'SELECT * FROM consulta
WHERE professional=1
AND client=0');
while ($row = mysqli_fetch_array($result)) {
// 1- put the hours in a array:
$hours = array("09:00:00","09:30:00","10:00:00","10:30:00");
// 2- give each element of the array the var $hour
foreach ($hours as $hour)
{
// 3- check each element of the array with each element of de database:
if ($row['hora'] == $hour) {
// hour was found in the database
echo '<p style="color:blue;">'. $hour .'</p>';
} else {
// hour was not found
echo '<p style="color:red;">'. $hour .'</p>';
}
}// end foreach
} // end while
在这个例子中,如果我echo $row['hora'] . '<br>';
它给了我:
09:00:00
10:00:00
答案 0 :(得分:0)
你的代码似乎很好。如果需要,您可以尝试其他解决方案:
$ result = mysqli_query($ con,'SELECT * FROM consulta WHERE professional = 1 AND cliente = 0');
// var_dump($result);
$hours = array("09:00:00","09:30:00","10:00:00","10:30:00");
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
if (in_array($row['hora'], $hours))
{
echo '<p style="color:blue;">'.$row['hora'] .'</p>';
}
else{
echo '<p style="color:red;">'. $row['hora'] .'</p>';
}
}
第二版:
//imprime todos los elementos presentes en array $hours
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$rows[] = $row['hora'];
}
foreach ($hours as $hour) {
if (in_array($hour, $rows))
{
echo '<p style="color:blue;">'.$hour .'</p>';
}
else{
echo '<p style="color:red;">'. $hour .'</p>';
}
}
答案 1 :(得分:0)
嗯,当然,您可以将'time'字段转换为char,然后从行中删除所有':',然后再次检查匹配。
根据我的经验,我在比较'日期'字段方面存在问题,因为我的服务器位置(巴西),而且我可以看到,你也来自这里。
希望它有所帮助。
编辑:
另外,从$hours
循环移除while
数组,并从中删除':'。