0

こんにちは、DB クエリに問題があります。

$q = $this->db->query("SELECT * FROM (`knihy`) 
                      WHERE `stav` = 1 
                      AND (Autor1 LIKE '$vyraz' 
                      OR Autor2 LIKE '$vyraz' 
                      OR Autor3 LIKE '$vyraz' 
                      OR Autor4 LIKE '$vyraz') 
                      ORDER BY `id` desc LIMIT $limit OFFSET $offset ");

問題は、たとえば「lorem」を検索しているときに、たとえばテーブルの行 Autor1 content: "lorem ipsum" に何も見つからないことです。しかし、lorem ipsum を検索すると、それらの 1 つのフィールドが見つかります。どこに問題がありますか?

4

1 に答える 1

6

LIKE の正しい構文を使用していません。

Autor1 LIKE '$vyraz'

次のようにする必要があります。

Autor1 LIKE '%$vyraz%'

ワイルドカードを使用しないと、完全に一致するだけです。

于 2012-09-13T20:19:40.627 に答える