2012-01-11 3 views
1

私はこのようなことをする最良の方法を見つけようとしています。基本的に私が(簡単な例で)何をしたいのかは、データベースに問い合わせて3行を返すが、3行がない場合、0,1、または2があり、次に他のデータを入れたい見つからない行の場所。MYSQL PHP whileループは、返された行がない場合に何かを行います。

私のクエリは2行を返します。次に、1つのリスト要素が他のデータとともに返されます。このような

何か: http://i42.tinypic.com/30xhi1f.png

$query = mysql_query("SELECT * FROM posts LIMIT 3"); 
while($row = mysql_fetch_array($query)) 
{ 
    print "<li>".$row['post']."</li>"; 
} 
//(this is just to give an idea of what i would likkeee to be able to do 
else 
{ 
    print "<li>Add something here</li>"; 
} 

答えて

2

私は考えることができる3つの方法があります:あなたは、単に(あなたが他のデータを生成する方法によって異なります)whileループでいくつかのパディングを行うことができます、あなたは、配列内の行を保存したり、somesuchと仮定すると、

+0

それは実際には完璧に、おかげで動作します。 私はあなたが〜を使うことで減算できるかどうかわかりません - それは私の新しいことです。 –

+0

ああ私は4分遅れました。 –

3

あなたはmysql_num_rowsでResultSet内の項目数を取得することができます。差をつけて、どれだけ多くのアイテムが「見つからない」かを調べるだけです。

while (count($resultList) < 3) { 
    // add another row 
} 
-1

mysql_num_rowsを使って行数を取得し、3つの値を持つ配列を準備し、結果セットをループするときにそれらを置き換えるか、または3つからカウントダウンして、次のように2番目のループでカウントダウンする:

$result = db_query($query); 
$addRows = 3; 
while ($row = mysql_fetch_assoc($result){ 
    $addRows--; 
    // do your stuff 
} 
while ($addRows-- > 0) { 
    // do your replacement stuff 
} 
+0

ありがとう、私はちょうど私の質問に入れているように私は例でそれを置くだろうか? –

+0

その場合、自分のコードの 'count($ resultList)'を 'mysql_num_rows($ query)'の呼び出しで置き換え、それをコードの 'else'部分に入れなければなりません。 – fivedigit

1

行が見つからない場合は、追加のinfを追加してくださいそれに応じて

$query = mysql_query("SELECT * FROM posts"); 
for($i=0;$i<3;$i++){ 
    $row = mysql_fetch_array($query); 
    if($row){ 
     print "<li>".$row['post']."</li>"; 
    } 
    //(this is just to give an idea of what i would likkeee to be able to do 
    else{ 
     print "<li>Add something here</li>"; 
    } 
} 
関連する問題