标题重写为:PHP ne parvient pas à traiter lorsqu'aucune donnée n'est renvoyée pour la date
P粉038856725
P粉038856725 2023-09-10 11:49:01
0
1
579

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 }

                ?>

P粉038856725
P粉038856725

répondre à tous(1)
P粉285587590

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

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

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal