Heim  >  Fragen und Antworten  >  Hauptteil

Fehler: PHP schlägt bei der Verarbeitung fehl, wenn für das Datum keine Daten zurückgegeben werden

Ich kann nicht beide Datenbanken betreiben. Wenn Daten vorhanden sind, die dem Datum entsprechen, drucke ich den Durchschnitt in einer Spalte aus. Wenn keine Daten vorhanden sind, die dem Datum entsprechen, erhalte ich die folgende Fehlermeldung. Ich muss ein „else“ eingeben, kann es aber nicht ausführen, wenn ich es eingebe. Mein Code lautet wie folgt;

<?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粉038856725P粉038856725428 Tage vor554

Antworte allen(1)Ich werde antworten

  • P粉285587590

    P粉2855875902023-09-11 09:17:08

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

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

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

    Antwort
    0
  • StornierenAntwort