私はこの問題を抱えており、最善かつ最も効率的な解決策を考え出そうとしています. 私は 19 の異なる入力を持つ php Web サイトを持っています。それらはすべてオプションであり、get メソッドを使用しています。これらの入力を使用して、データベースに一致する情報を見つけて返す必要があります。私が抱えている問題は、機能するクエリを作成することです。
$query = "SELECT * FROM TEST.table";
if(($_GET['Transmission_Line_Designation'] ==="") && ($_GET['Switch_Number'] === "") && ($_GET['Telecom_Circuit_Number'] === "")
&& ($_GET['Transmitter_Frequency'] === "") && ($_GET['Receiver_Frequency'] === "") && ($_GET['power_level'] === "")
&& ($_GET['Phase'] === "") && ($_GET['Modulate'] === "") && ($_GET['trap_type'] === "") && ($_GET['line_tuner_type'] === ""))
//checks if there were no input, if there werent any, display all columns and rows from the data base
{
}
else
{
これは私が問題を抱えている場所です。ユーザーが最初の入力を入力した場合、それは機能しますが、ユーザーが最初の入力を空白のままにすると、出てくるクエリは「どこで」「何か」であり、私は考えていました多くの if ループを使用して条件をチェックし、フラグを追加しますが、もっと簡単な方法があると確信しています。
$query.= " where ";
if
$query .= ($_GET['Transmission_Line_Designation'] === "") ? '' : 'Line_Designation = "'.$_GET['Transmission_Line_Designation'].'"';
$query .= ($_GET['Switch_Number'] === "") ? '' : ' and Switch_Number = "'.$_GET['Switch_Number'].'"';
$query .= ($_GET['Telecom_Circuit_Number'] === "") ? '' : ' and Telecom_Circuit_Number = "'.$_GET['Telecom_Circuit_Number'].'"';
$query .= ($_GET['Transmitter_Frequency'] === "") ? '' : ' and Transmitter_Frequency = "'.$_GET['Transmitter_Frequency'].'"';
$query .= ($_GET['Receiver_Frequency'] === "") ? '' : ' and Receiver_Frequency = "'.$_GET['Receiver_Frequency'].'"';
$query .= ($_GET['power_level'] === "") ? '' : ' and power = "'.$_GET['power_level'].'"';
$query .= ($_GET['Voltage'] === "") ? '' : ' and voltage = "'.$_GET['Voltage'].'"';
$query .= ($_GET['Phase'] === "") ? '' : ' and Phase= "'.$_GET['Phase'].'"';
$query .= ($_GET['Modulate'] === "") ? '' : ' and Modulate = "'.$_GET['Modulate'].'"';
$query .= ($_GET['trap_type'] === "") ? '' : ' and trap = "'.$_GET['trap_type'].'"';
$query .= ($_GET['line_tuner_type'] === "") ? '' : 'and ltunner = "'.$_GET['line_tuner_type'].'"';
echo $query;
}
事前にご協力いただきありがとうございます。