Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将数组与数据库进行比较_Php_Mysql_Foreach - Fatal编程技术网

Php 将数组与数据库进行比较

Php 将数组与数据库进行比较,php,mysql,foreach,Php,Mysql,Foreach,我将客户花费的时间存储在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” 09:00

我将客户花费的时间存储在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” 09:00:00、09:30:00、10:00:00、10:30: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
$result=mysqli\u查询($con,'SELECT*FROM consulta
其中professional=1
客户机=0’;
while($row=mysqli\u fetch\u数组($result)){
//1-将小时数放入数组中:
$hours=数组(“09:00:00”、“09:30:00”、“10:00:00”、“10:30:00”);
//2-为数组的每个元素指定var$hour
foreach(小时为$hour)
{  
//3-使用de数据库的每个元素检查数组的每个元素:
如果($row['hora']==$hour){
//在数据库中找到了小时
echo“

”.$hour.

”; }否则{ //找不到时间 echo“

”.$hour.

”; } }//端部foreach }//结束时
在本例中,如果我
echo$row['hora']
'它给了我:
09:00:00

10:00:00

您的代码看起来不错。如果需要,您可以尝试其他解决方案:

$result=mysqli_query($con,'SELECT*FROM consulta,其中professional=1,cliente=0')

//变量转储($result);
$hours=数组(“09:00:00”、“09:30:00”、“10:00:00”、“10:30:00”);
而($row=mysqli\u fetch\u数组($result,mysqli\u ASSOC)){
if(在数组中($row['hora',$hours))
{
echo'

”.$row['hora']。

'; } 否则{ echo'

”.$row['hora']。

'; } }
第二版:

//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>';

            }
    }
//Improme todos los elementos以数组形式呈现$hours
而($row=mysqli\u fetch\u数组($result,mysqli\u ASSOC)){
$rows[]=$row['hora'];
}
foreach(小时为$hour){
if(在_数组中($hour,$rows))
{
echo“

”.$hour.

”; } 否则{ echo“

”.$hour.

”; } }
当然,您可以将“time”字段转换为char,然后从行中删除所有“:”,然后再次检查匹配项

根据我的经验,我在比较“日期”字段时遇到了问题,因为我的服务器位置(巴西),正如我所见,您也来自这里

希望能有帮助

编辑:


另外,从
while
循环中删除
$hours
数组,并从中删除“:”。

我觉得您的代码很好。如果我用简单的整数替换您的时间,并将其与整数表进行比较,则输出完全符合预期。它也适用于字符串!啊,除了我认为您每次都在完整地遍历这两个数组之外!它给了我一个错误:第43行的/Applications/MAMP/htdocs/trobadaVirtual/reserva calendari/3/9.1.php中的数组到字符串转换while这里不需要while?尝试while($row=mysqli_fetch_Array($result))而不是foreach($result as$row),也许我可以在数组中转换数据库的结果。我想现在他们不是。你知道怎么做吗?这只给出了数据库中的小时数,而不是所有的小时数。我不知道我是否理解。如何将时间字段转换为字符?。顺便说一句,我来自安道尔(欧洲的一个小国),我没有听说过服务器有任何问题?那是我的错。嗯,这取决于,这个数据库是生产数据库还是开发数据库?我在本地使用Mamp
//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>';

            }
    }