Как сделать условие if-else и while внутри html в php? - PullRequest
0 голосов
/ 05 сентября 2018

Внутри моего HTML я хочу сделать цикл if-else и while, но что-то не получалось при каждой попытке. Пожалуйста, проверьте, что я делаю неправильно:

  <input type="radio" name="brand" value=""<?=(($brandValue == '')?' checked':'');?>> All<br>
  <?php if ($cat_id != ''): ?>
  <?php while ($brand = mysqli_fetch_assoc($sqlOnlyCatBrands)) : ?>
  <?php elseif ($cat_id == ''): ?>
  <?php while ($brand = mysqli_fetch_assoc($brandQ)) : ?>

  <?php endif; ?>

   <input type="radio" name="brand" value="<?=$brand['id'];?>"<?= (($brandValue == $brand['id'])?' checked':'');?> > <?=$brand['brand'];?> . 
   <br>
   <?php endwhile; ?>

Я хочу, чтобы мой $ cat_id не был пустым, затем выполнить

<?php while ($brand = mysqli_fetch_assoc($sqlOnlyCatBrands)) : ?>

Я хочу, если мой $ cat_id пуст, а затем выполнить

  <?php while ($brand = mysqli_fetch_assoc($brandQ)) : ?>

Я получаю сообщение об ошибке:

Parse error: syntax error, unexpected 'endif' (T_ENDIF) in 

Пожалуйста, подскажите, что я делаю не так.

1 Ответ

0 голосов
/ 05 сентября 2018

Вот структура кода:

<?php if ($cat_id != ''): ?>
    <?php while ($brand = mysqli_fetch_assoc($sqlOnlyCatBrands)) : ?>
    <input type="radio" name="brand" value="..."> ...<br>
    <?php endwhile; ?>
<?php elseif ($cat_id == ''): ?>
    <?php while ($brand = mysqli_fetch_assoc($brandQ)) : ?>
    <input type="radio" name="brand" value="..."> ...<br>
    <?php endwhile; ?>
<?php endif; ?>

Или вы можете упростить его, просто посмотрите, что отличается для вашего кода. Итак, вам не нужно переписывать то, что вы сделали.

<?php $sql = $cat_id != '' ? $sqlOnlyCatBrands : $brandQ; ?>
<?php while ($brand = mysqli_fetch_assoc($sql)): ?>
    <input type="radio" name="brand" value="..."> ...<br>
<?php endwhile; ?>

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...