Если..else вложен в цикл while с oci и php, но если...else не вызывается

Я пытаюсь использовать if..else в цикле while. Однако сценарий в else{echo " " ;} не вызывался, когда переменная $objParse возвращает 0 строк, но вызывался, когда возвращались строки. Кто-нибудь может мне помочь? Большое спасибо!

<?php
while($objResult = oci_fetch_array($objParse, OCI_BOTH)) {
    if (oci_num_rows ($objParse)) {
        echo "yes";
    } else {
        echo "No";
    }
    ?>
    <tr onmouseover = "this.style.backgroundColor=&#39;#C0C0C0&#39;;this.style.cursor=&#39;pointer&#39;;" onmouseout = "this.style.backgroundColor=&#39;#FFFFFF&#39;;">
        <td>
            <div align = "center">
                <a href = "http://s****/query/sr.php?CusID=<?=$objResult["FIELDBOOK"];?>"><font size = "2.95"><b><?=$objResult["FIELDBOOK"];?></b></font>
            </div>
        </td>
        <td>
            <div align = "center"><?=$objResult["PROJECT"];?></div>
        </td>
        <td>
            <div align = "center"><?=$objResult["DEPT"];?></div>
        </td>
        <td>
            <div align = "center"><?=$objResult["COMMUNITY"];?></div>
        </td>  
        <td>
            <div align = "center"><?=$objResult["CORTE"];?></div>
        </td>
        <td align = "center"><?=$objResult["PMB"];?></td>
        <td align = "center"><?=$objResult["PME"];?></td>
        <td align = "center"><?=$objResult["TYPE"];?></td>
        <td align = "center"><?=$objResult["AREA"];?></td>
        <td align = "center"><?=$objResult["OFFICESUPERVISOR"];?></td>
        <td align = "center">
            <a href=http://10.56.12.59/surveys/notes/<?=$objResult["YEAR"];?>/<?=$objResult["FIELDBOOK"];?>><font size = "2.8">View Folder</font></a>
        </td>
    </tr>
    <?php
}
oci_close($objConnect);

?>

while(($objResult = oci_fetch_array($objParse, OCI_BOTH)) != false) { var_dump($objResult); эхо "хорошо"; } вам не нужно использовать операторы if else

Pluda 31.01.2019 19:06

Я бы избегал внутренних накладных расходов на построение числовых и ассоциативных массивов результатов, вызванных использованием OCI_BOTH. Просто используйте OCI_ASSOC в вашем случае.

Christopher Jones 06.02.2019 05:55
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
117
1

Ответы 1

Проще говоря: цикл while никогда не выполнялся. Если вы получаете 0 результатов, возвращается пустой массив/строка или false и в php пустой массив оценивается как false.

Также я отредактировал ваш синтаксис html, вам не хватает закрывающих тегов div, будьте осторожны с этим.

Pluda 31.01.2019 21:16

Спасибо за ответ. Знаете ли вы, как я могу повторить «Запись не найдена», если она возвращает 0 строк в операторе цикла while, поскольку, как вы упомянули, только когда он возвращает строки, оператор цикла «While» будет продолжать выполнять сценарий.

Sissi 01.02.2019 00:27

Добавьте переменную-счетчик, инициализируйте ее 0 и увеличьте ее внутри цикла while. $rowIndex = 0; while (<condition>) { doSomething(); $rowIndex++; } $rowCount = $rowIndex; echo $rowCount;

tobain 01.02.2019 17:10

Другие вопросы по теме