2012-01-03 21 views
1

私のウェブサイトでMySQLのキーワードを検索しても問題ありません。問題は、誰かが追加していないキーワードを検索し、結果ページに何も表示されない場合です。PHP mysql_num_rows "結果がありません"というメッセージ?

何も表示されず、no results foundというメッセージが表示されます。

だから私は以下のコードを使用:私はそれが私のDBに、私はno results foundメッセージと一緒に私の結果を得ることである知っているキーワードを検索するたび

if (mysql_num_rows($Recordset1) > 0) { 
    // no results 
    echo 'No results found.'; 
} else { 
    do { 
    // output 
    } while($res = mysql_fetch_assoc($Recordset1)); 
} 

問題があります。 (no results foundメッセージはウェブページの左上にも表示され、ウェブサイト全体を押し下げて表示されます)

そして、データベースにないキーワードを検索したところ、メッセージは表示されませんでした前のようなものはありません。

私は、より大きい、より小さい、等号で遊んで、同様の問題を抱えていました。私の論理は後ろ向きだと言われましたが、どのように見えるかはわかりません。

ご協力いただきありがとうございます。

答えて

0
if (mysql_num_rows($Recordset1) == 0) { 
. . . 
+0

を使用した後、それを変数にフェッチする必要があります0 2)になります私の検索が一斉に停止する原因になります何らかの理由で – Will

1

doループは、ループに入る前に行をフェッチしない限り、データベースのフェッチには適していません。出力セクションの最初の反復では、データベースからフェッチされた結果はありません。したがって、本質的に何も出力しません。

結果がない場合、mysql_num_rows()は0を返します。実際には行が存在しないと言って、実際にはエロジックを反転しています。たとえ結果が1行であっても、> 0は真を返し、「結果なし」を出力します。

0
「結果が見つかりません」あなたは > 0を使用する場合、それは「結果がある」ことを意味し

if (mysql_num_rows($Recordset1) == 0) { 

に、あなたの場合は条件を変更し、ない

+0

が検索を全部止めさせている – Will

+0

あなたの質問をチェックしてください。 – Virendra

1
if (mysql_num_rows($Recordset1) == 0) { 
// no results 
echo 'No results found.'; 
} else { 
while($res = mysql_fetch_assoc($Recordset1)) { 
// output 
} 
} 

...

1を試してみてください)なしの結果であれば、その後はmysql_num_rowsは、出力を取得する前に、あなたがいない、いくつかのためにそれ

関連する問題