2012-09-06 29 views
0

我想使用數組來確定是否需要顯示相冊,而不是單個圖像。這裏,從邏輯上講,怎麼我試圖做到這一點:使用數組PHP

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; 
       } 

所以,我想我的問題是,我的邏輯是正確的嗎?此外,什麼是創建一個新的陣列,測試針對陣列,並添加到陣列最好的方法?我的意思是,關於我想要做什麼?

感謝

+0

試試這個'$ album = array()'而不是'$ list = array($ album);'&'$ album [] = $ row ['alb_id']; '而不是'$專輯= $行[ 'alb_id'];' – rynhe

+0

你想說什麼?什麼是預期的輸出 ? – Deepak

回答

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 
    } 
}