このコードは、データベース内の人の名前の検索エンジンによく似ています。
if (isset($_POST['submit'])){
$keyword = $_POST['stats'];
$orderby = $_POST['orderby'];
if (!empty($_POST['stats'])) {
$getStats = $db->query("SELECT * FROM `stats` WHERE
`lastname` LIKE '%$keyword%' OR `firstname` LIKE '%$keyword%' OR
`nickname` LIKE '%$keyword%' ORDER BY `$orderby`
DESC");
これにより、結果がテーブルに出力されます。テーブルコードは必要なく、長すぎると思いました。
上記のクエリは、姓のみ、名のみ、またはニックネームを検索する場合に機能します
しかし、たとえばデータベースに John Smith という名前のユーザーがいる場合は、
名: ジョン
姓: スミス
「John」を検索した場合、彼はテーブルに出力されます。これは、「Smith」を検索した場合と同じです。
しかし、'John Smith' を検索すると、彼はテーブルに出力されません。
これが発生するようにこのクエリを変更するにはどうすればよいですか、私はこれを試しました:
$getStats = $db->query("SELECT * FROM `stats` WHERE
`firstname`, `lastname` = '$keyword' OR `lastname` LIKE '%$keyword%' OR `firstname` LIKE '%$keyword%' OR
`nickname` LIKE '%$keyword%' ORDER BY `$orderby`
DESC");