如何在php中的html内创建if-else和while条件?

时间:2018-09-04 23:45:22

标签: php laravel

在我的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 :(得分:1)

这是代码结构:

<?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; ?>

希望这可以为您提供帮助。