【问题标题】:echo PHP array with while loop使用 while 循环回显 PHP 数组
【发布时间】:2017-01-30 22:37:57
【问题描述】:

我正在使用 while 循环来回显 PHP 数组:

$connect = mysqli_connect("localhost", "user", "password", "db");
$sql = "SELECT * FROM table ORDER BY RAND() LIMIT 0,4";
$result = mysqli_query($connect, $sql);

if(mysqli_num_rows($result) > 0)
{
 echo'<section>
        <div class="container">
           <div class="row">
             <h2 class="bold">title</h2>
               <hr> ';

                while($row = mysqli_fetch_array($result))
                {
                 echo'
                <div class="col-sm-3 col-md-3 col-md-push-3">
                    <div class="portfolio-wrapper">   
                        <div class="portfolio-single">
                            <div class="portfolio-thumb">
                                <a href="'.$row['link']." target="_blank">                                                        <img src="'.$row['image'].'" class="img-responsive" alt="'.$row['alt']."></a>
                            </div>
                        </div>
                        <div class="portfolio-info" dir="rtl">
                            <a href="'.$row['link2']." target="_self"><h2>                     </h2>
                                <h6>'.$row['title'].</h6>
                            </a>
                        </div>
                    </div>
                </div>';

            }
                echo'
                </div>
                    </div>
                    </section';
            }   

            ?>

这段代码对我来说很好,但问题是我需要回显 4 个不同的

例如:

   first will be: <div class="col-sm-3 col-md-3 col-md-push-9">
   second: <div class="col-sm-3 col-md-3 col-md-push-3">
   third: <div class="col-sm-3 col-md-3 col-md-pull-3">
   last: <div class="col-sm-3 col-md-3 col-md-pull-9">

任何想法如何使用 while 循环来完成这个结构?

【问题讨论】:

  • 保留一个计数器变量,使用它来确定使用哪个类,然后为循环的下一次迭代增加计数器变量。
  • 就像罗比说的。像 $array = array( '0' =&gt; 'col-sm-3 col-md-3 col-md-push-9' '1' =&gt; 'col-sm-3 col-md-3 col-md-push-3', '2' =&gt; 'col-sm-3 col-md-3 col-md-pull-3', '3' =&gt; 'col-sm-3 col-md-3 col-md-pull-9'); $count = 0; while(){ div... class=$array[$count]; ... count ++ } 这样的东西在记事本中完成,所以语法不正确,但你明白了

标签: php mysql arrays while-loop


【解决方案1】:
<?php
$connect = mysqli_connect("localhost", "user", "password", "db");
$sql = "SELECT * FROM table ORDER BY RAND() LIMIT 0,4";
$result = mysqli_query($connect, $sql);
$i = 1;
$count = count($result);
if(mysqli_num_rows($result) > 0)
{
 echo'<section>
        <div class="container">
           <div class="row">
             <h2 class="bold">title</h2>
               <hr> ';

                while($row = mysqli_fetch_array($result))
                {
                if($i==1){echo '<div class="col-sm-3 col-md-3 col-md-push-9">';}
                elseif($i == $count){echo '<div class="col-sm-3 col-md-3 col-md-pull-9">';}
                elseif($i%2 == 0){echo '<div class="col-sm-3 col-md-3 col-md-push-3">';}
                elseif($i%3 == 0){echo '<div class="col-sm-3 col-md-3 col-md-pull-9">';}

                 echo'
                        <div class="portfolio-wrapper">   
                            <div class="portfolio-single">
                                <div class="portfolio-thumb">
                                    <a href="'.$row['link']." target="_blank">                                                        <img src="'.$row['image'].'" class="img-responsive" alt="'.$row['alt']."></a>
                                </div>
                            </div>
                            <div class="portfolio-info" dir="rtl">
                                <a href="'.$row['link2']." target="_self"><h2>                     </h2>
                                    <h6>'.$row['title'].</h6>
                                </a>
                            </div>
                        </div>
                    </div>';
                    $i =$i+1;
            }
                echo'
                </div>
                    </div>
                    </section';
            }   

?>

【讨论】:

    【解决方案2】:

    使用计数器,并将您的类放入这样的数组中:

    $classes = [
        "col-sm-3 col-md-3 col-md-push-9",
        "col-sm-3 col-md-3 col-md-push-3",
        "col-sm-3 col-md-3 col-md-pull-3",
        "col-sm-3 col-md-3 col-md-pull-9"
    ];
    
    $i = 0;
    while($row = mysqli_fetch_array($result)) {
        if ($i > 3) {
            $i = 0;
        }
        ?>
        <div class="<?php echo $classes[$i]; ?>">
            Your content comes here
        </div>
        <?php
        $i++;
    }
    

    注意

    如果数组中没有类似的索引,则重置计数器。您的脚本假定您将始终获得 4 行。

    【讨论】:

      猜你喜欢
      • 2012-02-25
      • 2012-02-21
      • 1970-01-01
      • 2014-12-18
      • 2013-12-09
      • 2018-02-09
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      相关资源
      最近更新 更多