2011-08-05 648 views
0

我有以下while while循環。PHP - 雖然循環更改

$readNews_SQLselect = "SELECT "; 
$readNews_SQLselect .= "id, content "; // rows names 
$readNews_SQLselect .= "FROM "; 
$readNews_SQLselect .= "news ";   // table name 


$readNews_SQLselect_Query = mysql_query($readNews_SQLselect); 

//$indx = 1;  
while ($row = mysql_fetch_array($readNews_SQLselect_Query, MYSQL_ASSOC)) { 
    $ID = $row['id']; 
    $CONTENT = $row['content']; 

    echo '<li>' . $ID .' ' . $CONTENT . '</li>'; 

    //$indx++; 

} 

mysql_free_result($readNews_SQLselect_Query); 

會如何看待,如果我加入'$LIVE = $row['live'];'與條件只能用「0」 live值的字符串行應顯示?直播將是0/1(VARCHART)。

任何建議非常感謝。

+0

'如果($ LIVE == 0)回聲...'? – JJJ

+2

如果您對程序中的每一個新行都提出SO問題,那麼需要花時間來開發它。獲得一本書或教程 –

+0

@yi_H - 只練習:)是我第三天使用SQL/PHP。 – Iladarsda

回答

5

只需添加到您的查詢:

$readNews_SQLslect .= " WHERE live = '0'"; 
+0

作爲最後?哪一個會更好,在while循環或SQL查詢中? – Iladarsda

+1

當然SQL查詢:更快,更少的內存用於獲取數據,更少的CPU使用,因爲更少的whille循環迭代。 –

+1

如果你在你的SQL查詢中執行它,數據庫甚至不必查看那些行,如果你在循環中執行它,你的數據庫將不得不提取行,並且你必須有更多的邏輯跳過它們。 – TJHeuvel

3

阿爾特$readNews_SQLselect

$readNews_SQLselect = "SELECT "; 
$readNews_SQLselect .= "id, content "; // rows names 
$readNews_SQLselect .= "FROM "; 
$readNews_SQLselect .= "news ";   // table name 
$readNews_SQLselect .= "WHERE live='0'"; // condition 
1
  1. 改變你的SQL:

    $readNews_SQLselect = "SELECT "; 
    $readNews_SQLselect .= "id, content "; // rows names 
    $readNews_SQLselect .= "FROM "; 
    $readNews_SQLselect .= "news ";   // table name 
    $readNews_SQLselect .= "where live = '0' ";
  2. 如果條件:

    if ($row['live'] == '0') { echo '<li>' . $ID .' ' . $CONTENT . '</li>'; }

+0

有沒有其他選項作爲WHILE expr? – Iladarsda

+0

@RiaD,tahks!當我輸入一個答案時,事情變得很糟糕。 @Pete,只需將...和($ row ['live'] =='0')'加入...,但它不是很好 – k102