2011-07-01 19 views
0

私は以下のような機能を持っていますそのための良いオプションです。 NULLの代わりに何をすれば、whereフィールドのidフィールドを指定しない別のクエリを使用する以外のすべてのレコードを取得できますか?選択のすべてのレコードを選択し

おかげで...

+0

は異なるIDを選択... – Tarik

+1

私はあなたをdownvoteていなかったが、彼は彼はだと思っているため、あなたはsoemoneがdownvoteしないよりも理解しなければなりません賢い私は、このサイトに来る人は誰でも、頼んだり答えたりして、彼がかなり賢いと思っていると思う。 Downvoteは、質問が明確でないか、有用ではない、またはOPが投稿を検索する前に何かを検索したことが明らかでないと彼が考えていることを意味します。 –

答えて

8
$query = "select * from press_releases"; 
if (!empty($id)) 
{ 
    $query .= "where id = {$id}"; 
} 

$idが整数である場合は、私が使用します。

$id = (int) $id; 
if ($id > 0) 
... 

私は$idを使用しても安全であることを確認しますいずれかの方法。これは動作するかもしれ

+0

私はこの答えが似ていますが、私が実装したものに似ています。 – Tarik

2

$query = "select * from press_releases where id = {$id} OR {$id} IS NULL"; 
-1

あなたはどこオペレータが

$query = "select * from press_releases where id LIKE '{$id}'"; 

のように、LIKEと '%' にデフォルト値を変更し、私は好きではないために置き換えることができます効率性の理由からこのソリューションです。

あなたは、あなたが書いたとおりに質問を残しておく必要がある場合にのみ、これを行うべきです。それ以外の場合は、$idパラメータが指定されている場合に限り、where条件を追加するようにクエリを変更します。それが正しい解決策になります。

+0

これは意図しない追加のレコードを与えます。 – Randy

+0

あなたが正しいです、私は質問を変更しないように頼んだので、一から書いています。私は正しいもので私の答えを更新するつもりです。 – Fabio

-1

彼らは巧妙であり、他の人の質問にdownvoteと思う人々は常にありますpress_releases

関連する問題