私はフルテキスト検索のための簡単なクエリを持っています。データはHTMLフォーム入力から得られます。もし文のチェックやarray_key_existsの3つの入力をすべて満たしてからすべての文字列を連結したが、誰かが最初または2番目の入力を満たさなかった場合、WHERE部分はWHERE AND contract = $var
なのでANDは必要ありません。どのように私はこれを解決することができます私の問題の解決策は何ですか? ANDが必要な場合は、クエリ文字列に追加するだけで、必要がない場合は追加しないでください。if文とのSQL文字列連結
$sql = "SELECT
slug,
title,
company,
location,
email,
street,
city,
phone,
url,
description,
image,
created_at
FROM jobs
WHERE ";
array_key_exists('paieska', $segment) ? $sql .= "MATCH(title, description) AGAINST('".urldecode($segment['paieska'])."') " : '';
array_key_exists('darbo-laikas', $segment) ? $sql .= "AND contract = '".$segment['darbo-laikas']."' " : '';
array_key_exists('miestas', $segment) ? $sql .= "AND location = '".$segment['miestas']."'" : '';
これは、MATCHの最初の部分が他の方法で埋められていない場合にのみ機能します。SQL構文エラー – SkySonny
最初の 'MATCH(タイトル、説明)' @SkySonnyの前に 'AND'を必ず追加しましたか? – FrankerZ
ああ..私の悪い、私は慎重に読んでいない、すべてが完全に動作します。ありがとう! – SkySonny