与foreach的画廊

时间:2016-12-28 13:50:42

标签: php html mysql sql

目前我设计了一个包含此表单的图库

enter image description here

我从数据库中获取imgs,我面临的问题是使用从db获取的图像来维护数据库结构,我想每6个图像重复一次,我想我可以做一个if - 但是它不起作用,因为我的条件会相互覆盖,例如,如果我把if(x%2 == 0)类a这将覆盖if(x%4 == 0)class b,并且这是我用来从db获取数据的代码,以及我想修复的foreach



<?php foreach ($imagenes as $imagen): 
  $control = $imagen['id_img']; //get the id from the img
?>
  <?php if($control % 3 === 0 || $control % 4 === 0){?>
	<li class="c">
    </li>
  <?php }elseif($control % 2 === 0 || $control % 5 === 0){ ?>
    <li class="b"> 
	</li>
  <?php }else{?> 
    <li class="a"> 
	</li>
<?php } ?>
&#13;
&#13;
&#13;

另外,最初的想法是使用api从youtube自动获取视频并放入框中,但我不知道该怎么做,所以我改变了一个表youtube_videos其中嵌入我保存,然后我会得到它并放入画廊,不漂亮,但它的工作

1 个答案:

答案 0 :(得分:0)

在这里,试试这个 -

<?php

$imagenes = [1,2,3,4,5,6,7,8,9,10,11,12,13];
$temp_arr = [];
$c = 0;

foreach ($imagenes as $imagen) {

    $temp_arr[] = $imagen;

    if(count($temp_arr) === 6) {

        echoRow();
        $temp_arr = [];
        $c = 0;
    }
}

function echoRow() {
    global $temp_arr;
    global $c;

    foreach($temp_arr as $control) {

        switch($c) {
            case 0: echo "\n$control c <br>";
            break;
            case 1: echo "\n$control a <br>";
            break;
            case 2: echo "\n$control b <br>";
            break;
            case 3: echo "\n$control b <br>";
            break;
            case 4: echo "\n$control a <br>";
            break;
            case 5: echo "\n$control c <br>";
            break;
        }
        $c += 1;

    }   
}

echoRow();

上述方法会创建6个批次以显示您的数据。