Я пытаюсь использовать 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='#C0C0C0';this.style.cursor='pointer';" onmouseout = "this.style.backgroundColor='#FFFFFF';">
<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);
?>
Я бы избегал внутренних накладных расходов на построение числовых и ассоциативных массивов результатов, вызванных использованием OCI_BOTH. Просто используйте OCI_ASSOC в вашем случае.






Проще говоря: цикл while никогда не выполнялся. Если вы получаете 0 результатов, возвращается пустой массив/строка или false и в php пустой массив оценивается как false.
Также я отредактировал ваш синтаксис html, вам не хватает закрывающих тегов div, будьте осторожны с этим.
Спасибо за ответ. Знаете ли вы, как я могу повторить «Запись не найдена», если она возвращает 0 строк в операторе цикла while, поскольку, как вы упомянули, только когда он возвращает строки, оператор цикла «While» будет продолжать выполнять сценарий.
Добавьте переменную-счетчик, инициализируйте ее 0 и увеличьте ее внутри цикла while. $rowIndex = 0; while (<condition>) { doSomething(); $rowIndex++; } $rowCount = $rowIndex; echo $rowCount;
while(($objResult = oci_fetch_array($objParse, OCI_BOTH)) != false) { var_dump($objResult); эхо "хорошо"; } вам не нужно использовать операторы if else