标题重写为:PHP fails to process when there is no data returned for the date
P粉038856725
P粉038856725 2023-09-10 11:49:01
0
1
516

我无法操作两个数据库。 如果有等于日期的数据,我会在一列中打印平均值。 如果没有等于日期的数据,我会收到以下错误。 我需要输入一个“else”,但是当我输入时我无法让它运行。 我的代码如下;

<?php
                         $Sor = $conn->query("SELECT * FROM yemeklistesi");
                    //burada satırları dizi olarak çektik
                        $rows = $Sor->fetchAll(PDO::FETCH_ASSOC); 
                        foreach ($rows as $row) {
                        $id = $row['id'];
                        $kullaniciadi = $row['yemek'];
                        $sifre = $row['tarih'];
                 ?>
                    <tr>
                        <td><?php echo $row['id']; ?></td>
                        <td><?php echo $row['yemek']; ?></td>
                        <td><?php echo $row['tarih']; ?></td>
                        <td style="background-color: green; color:#fff; font-size:20px;">
                            <?php

                                    // echo strtotime($row['tarih']);
                                $bilgiler = $conn->query("SELECT * FROM yemekhane_anket");
                                $bilgilercek=$bilgiler->fetchAll(PDO::FETCH_ASSOC);
                                    $say = 0;
                                    $mem = 0;
                                 foreach ($bilgilercek as $row2) {
                                    $a = strtotime($row2['tarih']);
                                    if(strval($row['tarih']) == strval(date('Y-m-d',$a))){
                                        $say = $say + 1;
                                    }
                                    if(strval($row['tarih']) == strval(date('Y-m-d',$a)) && strval($row2['memnuniyet_durumu']) == '1'){
                                        $mem = $mem + 1;
                                    }
                                 }
                                echo round(intval($mem) * 100/intval($say));
                             ?>
                        %</td>

                    </tr>
               <?php }

                ?>

P粉038856725
P粉038856725

全部回复(1)
P粉285587590

我建议您检查条件之前或内部的值不为空,并且能够以特定格式创建 dateTime 对象

date_create_from_format(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTime|false

如果日期时间字符串能够创建日期时间对象,上面将返回日期时间对象,否则将返回 FALSE 布尔值。这样你就可以执行你的 else 部分。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!