こんにちは、ユーザーがテスト名と結果タイプを入力するための 2 つのフィールドを持つ基本的な検索機能があります。ドロップダウンをフィルターとして使用するなど、いくつかの方法を試しましたが、これが最も簡単な方法です。検索クエリの 3 つのテーブルで INNER Joins を使用しています。現時点では、SQL 構文に関するエラーは発生していませんが、結果もエコーされていません。データベースでクエリを実行したところ、結果が正常に返されました。私は愚かな何かを逃していますか、どんな助けでも大歓迎です。
if (isset($_GET['action']) and $_GET['action'] =='search')
{
$resultts = mysql_real_escape_string(htmlentities(trim($_GET['result'])));
$tests = mysql_real_escape_string(htmlentities(trim($_GET['test'])));
if (isset($resultts) and ($tests))
{
$sql = "SELECT p.fileName, p.mimeType, p.dateCreated, t.testName, r.resultType
FROM 'product_logs' AS p
INNER JOIN 'result' AS r
ON p.resultID=r.resultID
INNER JOIN 'test' AS t
ON r.testID=t.testID
WHERE t.testName LIKE '%$tests%'
AND r.resultType LIKE '%$resultts%'
ORDER BY r.dateCreated DESC";
$result = mysqli_query($sql) or die ("error in query");
}
while ($row = mysqli_fetch_array($result))
{
echo "<tr>
<td>".$row['fileName']."</td>
<td>".$row['mimeType']."</td>
<td>".$row['dateCreated']."</td>
<td>".$row['testName']."</td>
<td>".$row['resultType']."</td>
</tr>";
}
}
テーブルは
result
resultID int(6) NO PRI NULL auto_increment
resultType varchar(15) NO NULL
resultDate date NO NULL
testID int(11) NO MUL NULL
testerID int(11) NO MUL NULL
productID int(11) NO MUL NULL
product_logs
logID int(5) NO PRI NULL auto_increment
mimeType varchar(50) NO NULL
fileData mediumblob NO NULL
fileName varchar(255)NO NULL
dateCreated date NO NULL
resultID int(11) YES MUL NULL
test
testID int(5) NO PRI NULL auto_increment
testName varchar(10) NO NULL
testDate date NO NULL
これが私が使用しているフォームです
echo "<form action= results_page.php method= get>";
echo"<p>Search Product Logs:</p>";
echo"<div>";
echo"<label for=text>Please Enter Test Name:</label>";
echo"<input type=text name=test id=text/>";
echo"<label for=text>Please Enter Result Type:</lable>";
echo"<input type=text name=result id=text/>";
echo"<input type=hidden name=action value=search/>";
echo"<input type=submit value=Search>";
echo"</div>";
echo"</form>";