2013-02-20 77 views
0

我正在查詢數據庫並顯示數據。我有一個時間戳和一個Facebook ID,用於顯示用戶的個人資料圖片(使用Facebook圖表)。儘管如此,這是一個比FB Graph問題更多的PHP/Loop問題。這裏是我的代碼位的是我的工作:需要一個更具體的PHP While循環查詢MySQL數據庫

$sql = "SELECT * FROM fb_id ORDER BY timestamp DESC"; 
$result = $mysqli->query($sql); 

echo "<h1>".$lastone_month." ".$year_lastone."</h1>"; 
while($row = mysqli_fetch_array($result)){ 
$fb_id = $row['fb_id']; 
$timestamp = date_parse($row['timestamp']); 
$month = $timestamp['month']; 
$year = $timestamp['year'];          
echo "<a href='http://www.facebook.com/".$fb_id."' target='_blank'><img src='http://graph.facebook.com/".$fb_id."/picture/' /></a>"; 
} 

Eseentially發生的事情是,我附和最近一個月(這是在這之前一些代碼)。 $ lastone_month是一個數字(這是最近註冊用戶的月份數)。假設它是一月份,那麼h1會顯示1/2013。然後我使用while循環遍歷數據庫,並按照時間戳的順序回顯用戶的個人資料圖片。我想要做的是運行while循環,直到它到達$ month不等於$ lastone_month的行。

我不能在while循環中使用「& & $ month == $ lastone_month,因爲$ month值尚未聲明在那一點上我嘗試了一個if語句繞回聲線但它導致它無限顯示一個條目,我試圖在while循環之前聲明行,然後在那裏聲明$ month和$ year,然後運行循環,但那也不起作用,我認爲這是一個非常簡單的解決方案,但是我不能弄清楚它是什麼任何幫助將不勝感激非常感謝

回答

1

您可以使用break在任何時候從環退出:!

while ($row = mysqli_fetch_array ($result)) 
{ 
    ... 
    $month = $timestamp ['month']; 
    if ($month != $lastone_month) break; 
    ... 
} 

但更有效的是在SQL查詢中使用WHERE

$sql = "SELECT * FROM fb_id WHERE MONTH(timestamp)='$lastone_month' ORDER BY timestamp DESC"; 
0
// build here timestamp which is your limit and name it $limit 
$sql = 'SELECT * FROM fb_id WHERE timestamp < "$limit" ORDER BY timestamp DESC'; 

類似的東西