2011-08-05 42 views
0

私は次のwhileループを持っています。私は「0」のlive値文字列と行のみが表示されなければならないという条件で'$LIVE = $row['live'];'を追加した場合PHP - whileループの変更

$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); 

はどのように見えるのでしょうか?ライブは0/1(VARCHART)です。

ご迷惑をおかけして申し訳ございません。

+0

'($ LIVE == 0)の場合は、エコー...'? – JJJ

+2

プログラムの新しい行ごとにSOの質問をすると、開発に時間がかかります。本やチュートリアルを入手 –

+0

@yi_H - 演習のみ:)私の3日目はSQL/PHPを使用しています。 – Iladarsda

答えて

5

ちょうどあなたのクエリにこれを追加します。

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

最後に? whileループやSQLクエリでどちらが良いでしょうか? – Iladarsda

+1

SQLクエリーはもちろん:データを取得するのに使用されるメモリがより速く、メモリが少なくて済み、whilleループの繰り返しが少ないためCPUが少なくて済みます。 –

+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のALTER:

    $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')'をwhileに追加するだけですが、あまり良くありません – k102