Maison  >  Questions et réponses  >  le corps du texte

标题重写为:PHP ne parvient pas à traiter lorsqu'aucune donnée n'est renvoyée pour la date

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粉038856725P粉038856725428 Il y a quelques jours555

répondre à tous(1)je répondrai

  • P粉285587590

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

    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.

    répondre
    0
  • Annulerrépondre