【问题标题】:php loop repetitive executionphp循环重复执行
【发布时间】:2017-07-27 20:34:36
【问题描述】:

我可以在此代码中更改什么以使 This 的输出看起来像 This

两个“This”链接是布局的屏幕截图 我希望所有框都像第二个屏幕截图一样排列/相邻。

我在 html 中编写了布局,并且在尝试 php 时它可以工作,布局只是搞砸了。

function getTest(){

  global $con;

  $get_pro = "select * from drinks";

    $run_pro = mysqli_query($con, $get_pro); 

    while($row=mysqli_fetch_array($run_pro)){

    $id = $row['id'];
    $title = $row['title'];
      $cat = $row['cat'];
      $image = $row['image'];
      $desc = $row['desc'];
      $qty = $row['qty'];
      $price =$row['price'];
      $status= $row['status'];


echo "<!--==========================\n"; 
echo "  Price Menu\n"; 
echo "============================-->\n"; 
echo "      <!-- Page Content -->\n"; 
echo "      <main class=\"entry-content\">\n"; 
echo "          <section class=\"page-section\">\n"; 
echo "              <div class=\"container\">\n"; 
echo "              \n"; 
echo "                  <div class=\"row\">\n"; 
echo "                      <div class=\"col-md-12\">\n"; 
echo "                          <div class=\"isotope-filters\" role=\"group\">\n"; 
echo "                              <div class=\"btn-group\">\n"; 

// the categories go here

echo "                              </div>\n"; 
echo "                          </div>\n"; 
echo "                      </div>\n"; 
echo "                  </div>\n"; 
echo "                  <br><br>\n"; 
echo "                  <div class=\"row isotope-wrapper isotope-beers-wrapper\">\n"; 
echo "                      <div class=\"isotope isotope-beers gutter\">\n"; 
echo "                          <div class=\"grid-item col-lg-3 col-md-3 col-sm-6 col-ms-6 col-xs-12 $cat\">\n"; 
echo "                              <div class=\"grid-wrapper\">\n"; 
echo "                                  <a href=\"javascript:void(0);\" data-remodal-target=\"bottle-$id\">\n"; 
echo "                                      <figure style=\"background-image: url('admin/images/drinks/$image')\">\n"; 
if ($row['status'] === 'Yes'){
echo "                                      <div class=\"offer\"></div>\n"; 
}
echo "                                          <figcaption class=\"grid-content\">\n"; 
echo "                                              <h5 class=\"grid-title\"><span>$title</span></h5>\n"; 
echo "                                          </figcaption>\n"; 
echo "                                      </figure>\n"; 
echo "                                  </a>\n"; 
echo "                              </div>\n"; 
echo "                          </div>\n"; 
echo "                      </div>\n"; 
echo "                  </div>\n"; 
echo "\n"; 
echo "              </div>\n"; 
echo "          </section>\n"; 
echo "      </main><!-- /.enry-content -->\n"; 
echo "\n"; 
echo "      <!-- Off-Page Content -->\n"; 
echo "      <!-- Mobile Navigation (Left Panel) -->\n"; 
echo "      <!-- Preloader -->\n"; 
echo "      <div class=\"introLoading\"></div>\n"; 
echo "      <!-- Back to Top -->\n"; 
echo "      <div>\n"; 
echo "          <a class=\"back-to-top fa fa-chevron-up\" href=\"javacript:void(0);\"></a>\n"; 
echo "      </div>\n"; 
echo "      <!-- Modal Content -->\n"; 
echo "      <div class=\"remodal-bg\">\n"; 
echo "          <!-- Item One -->\n"; 
echo "          <div class=\"remodal modal-beers\" data-remodal-id=\"bottle-$id\">\n"; 
echo "              <button data-remodal-action=\"close\" class=\"remodal-close\"></button>\n"; 
echo "              <div class=\"row\">\n"; 
echo "                  <div class=\"col-md-5 col-sm-12 col-xs-12\">\n"; 
echo "                      <div class=\"item-modal-image\">\n"; 
echo "                          <a class=\"image-lightbox\" href=\"admin/images/drinks/$image\"><img alt=\"\" src=\"admin/images/drinks/$image\" /></a>\n"; 
echo "                      </div>\n"; 
echo "                  </div>\n"; 
echo "                  <div class=\"col-md-7 col-sm-12 col-xs-12\">\n"; 
echo "                      <h3>$title</h3>\n"; 
echo "                      <p>$desc</p>\n"; 
echo "                      <table class=\"table\">\n"; 
echo "                          <tbody>\n"; 
echo "                              <tr>\n"; 
echo "                                  <td>Price:</td>\n"; 
echo "                                  <td>£$price</td>\n"; 
echo "                              </tr>\n"; 
echo "                              <tr>\n"; 
echo "                                  <td>Quantity:</td>\n"; 
echo "                                  <td>$qty</td>\n"; 
echo "                              </tr>\n"; 
echo "                          </tbody>\n"; 
echo "                      </table>\n"; 
echo "                  </div>\n"; 
echo "              </div>\n"; 
echo "          </div>\n"; 
echo "      </div>  \n"; 
echo "\n"; 
echo "    <!--==========================\n"; 
echo "  Price Menu end\n"; 
echo "============================-->\n";

}

}

【问题讨论】:

  • @WheatBeak 我在 html 中制作了布局,然后使用 HTML->PHP 转换器将其转换为 php
  • 我的第一个猜测是,您的问题是您在循环的每次迭代中都放入了&lt;div class="container"&lt;div class="row"&gt; 等。
  • 你应该在 HTML 之间填充 PHP,你使用 echo 进行了反转
  • 看起来您在每次循环过程中都插入了整个echos 块。这将为您提供第一个屏幕截图中显示的结果。我的建议是更多地研究如何在 php 页面中使用 html,因为这不是你应该做的。
  • 我想通了,伙计们,谢谢,我把整个代码重复了两次

标签: php html css twitter-bootstrap


【解决方案1】:

看到你用的是bootstrap,建议你用这种结构

Take a look on this page

<div class="container">
    <div class="row">
        <span class="col-lg-3 col-sm-12 picture">
            <img class="img-thumbnail" src="//placehold.it/200x200">   
        </span>

        <span class="col-lg-3 col-sm-12">
            <img class="img-thumbnail" src="//placehold.it/200x200">   
        </span>

        <span class="col-lg-3 col-sm-12">
            <img class="img-thumbnail" src="//placehold.it/200x200">   
        </span>

        <span class="col-lg-3 col-sm-12">
            <img class="img-thumbnail" src="//placehold.it/200x200">   
        </span>
    </div></div>

【讨论】:

    【解决方案2】:

    echos 中取出所有的html,然后将PHP 插入到您的html 中。首先,您需要确定需要循环的 html 区域,例如,如果我的原始 html 是这样的:

    <div class="row">
        <div class="col-xs-12 col-sm-4">
            Box 1
        </div>
        <div class="col-xs-12 col-sm-4">
            Box 2
        </div>
        <div class="col-xs-12 col-sm-4">
            Box 3
        </div>
    </div>
    

    但我想动态生成 3 个框,我的 PHP 会是这样的,你可以将其包装在一个函数中:

    <?php
    function outputStuff(){
    
        $contents = array("Box 1","Box 2","Box3");
    ?>
    
        <div class="row">
    
        <?php foreach($contents as $value):?>
    
            <div class="col-xs-12 col-sm-4">
    
                <?php echo $value; ?>
    
            </div>
    
        <?php endforeach;?>
    
        </div>
    
    <?php 
    } // end the function 
    ?>
    

    row 必须在循环之外,否则将为每个项目创建它并清除列上的浮动。使用这些基本原则,您将实现您想要的。

    【讨论】:

    • 兄弟,我想使用单独的功能页面,否则页面看起来很乱
    • 你仍然可以将这种代码包装在一个函数中,我会更新我的答案。
    猜你喜欢
    • 2021-02-13
    • 2017-06-28
    • 1970-01-01
    • 2019-05-28
    • 1970-01-01
    • 2012-11-16
    • 2019-11-25
    • 1970-01-01
    • 2013-10-10
    相关资源
    最近更新 更多