Heim > Fragen und Antworten > Hauptteil
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粉2855875902023-09-11 09:17:08
我建议您检查条件之前或内部的值不为空,并且能够以特定格式创建 dateTime 对象
date_create_from_format(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTime|false
如果日期时间字符串能够创建日期时间对象,上面将返回日期时间对象,否则将返回 FALSE 布尔值。这样你就可以执行你的 else 部分。