Je ne parviens pas à exploiter les deux bases de données. S'il y a des données égales à la date, j'imprime la moyenne dans une colonne. S'il n'y a pas de données égales à la date, j'obtiens l'erreur suivante. J'ai besoin de taper un "else" mais je n'arrive pas à le faire fonctionner lorsque je le tape. Mon code est le suivant ;
<?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 } ?>
Je vous recommande de vérifier que la valeur avant ou à l'intérieur de la condition n'est pas nulle et de pouvoir créer un objet dateTime dans un format spécifique
Ce qui précède renverra un objet datetime si la chaîne datetime est capable de créer un objet datetime, sinon elle renverra une valeur booléenne FALSE. De cette façon, vous pouvez exécuter votre autre partie.