如何在while循环中获取数组元素的特定顺序

时间:2014-02-13 05:22:33

标签: php

我有一张图片表('imgurl','orientation'),其中的方向是垂直或水平的。

我想要显示图片:

首先横向 第一个垂直 第二纵向 第二横向

我通常会做一个

while($img2 = mysql_fetch_assoc($img))
{  ...  }

但是我怎样才能改变它来控制第一个水平,然后是第一个垂直,然后是第二个垂直,然后是第二个水平,

感谢

CODE:

$img = mysql_query("select * from blogimage where blog_id = '".$blog2['blog_id']."'  ");

while($img2 = mysql_fetch_assoc($img))
{ ?>
<tr><td colspan="2"><img src="blogimages/<? echo $img2['img_url']; ?>" /></td></tr>
<? } ?> 

mysql表blogimage有'img_url'和'orientation'(垂直或水平)

1 个答案:

答案 0 :(得分:0)

有几个解决方案:

  1. 在名为position的表中添加第三列:将元素的位置存储在那里。

  2. 如果你坚持按自己的方式行事,请小心。

  3. $ img = mysql_query(“select * from blogimage where blog_id ='”。$ blog2 ['blog_id']。“'”);

    只是注意不要将未转义的字符串传递给您的SQL查询使用参数绑定,如PDO或框架,如codeigniters活动记录。另外mysql是折旧使用mysqli

    如果要在垂直和水平之间交替存储数组中的结果:

    $vertical,$horizontal = array();
    while($img2 = mysql_fetch_assoc($img))
    {
    
    $orientation = mysql_fetch_assoc($orientation);
    
    if($orientation == 'vertical') {
    array_push($vertical,$img2);
    }
    else
    {
    array_push($horizontal,$img2 );
    }
    
    //now you have two arrays filled with index=>picture based on orientation
    
    for($i=0; $i<count($horizontal)-1; i++)
    {
    
    echo "<tr><td colspan='2'><img src='blogimages/'.$horizontal[$i].'/></td></tr>";
    echo "<tr><td colspan='2'><img src='blogimages/'.$vertical[$i].'/></td></tr>";
    }
    
    }