使用数组PHP

时间:2012-09-06 04:22:52

标签: php mysql

我想使用数组来确定是否需要显示相册,而不是单个图像。从逻辑上讲,这是我尝试的方式:

1)从表格中选择所有单个图像(行)(称为时刻)

2)如果图像没有在alb_id列中设置值,则正常显示

3)如果图像具有alb_id值,请查看它是否已存储在数组中以跟踪alb_id。

4)如果它在数组中跳过该行,或者显示一个相册并将该alb_id从图像添加到数组中,以便将来不会显示具有该alb_id的任何图像。

这是我正在尝试的。虽然看起来不对。它也不起作用。

    $connect= mysqli_connect('localhost', 'root', '', 'thesocialnetwork')
        or die('error connecting');
    $query= "SELECT * FROM moments WHERE user_id= '".$user_id."' ORDER BY     
            order_date DESC";
    $result= mysqli_query($connect, $query);
    $list= array($album);
    while ($row= mysqli_fetch_array($result)) {
        if (!empty($row[alb_id'])) {    
                    if (!in_array($row['alb_id'], $list)) {
           $album.= $row['alb_id'];
                       display a new album;
                    }
                    else {
                        continue;
                    }
                }
                else {
                    just display the single image;
                }

所以,我想我的问题是,我的逻辑是否正确?另外,创建新数组,对该数组进行测试以及添加到该数组的最佳方法是什么?我的意思是,关于我想做什么?

由于

1 个答案:

答案 0 :(得分:0)

如果要测试数组中的成员资格,最好使用关联数组,并将要检查的内容用作键。所以逻辑应该是:

$list = array();
while ($row = mysqli_fetch_array($result)) {
  $alb = $row['alb_id'];
  if (!empty($alb)) {
    if (!isset($list[$alb]) {
      $list[$alb] = true;
      // display a new album
    } else {
      continue;
    }
  } else {
    // display the single image
  }
}