我有一個PHP驅動頁面,允許我輸入搜索參數。其中一個數字是由幾位數組成的ID。當我搜索具有這些特定數字的數字時,它會返回所有結果。MySQL查詢不通過php腳本返回特定的搜索參數
我已經在phpmyadmin和SQL終端中做了完全相同的聲明,它只返回我搜索的項目。所以我想問題在於我使用PHP提交基於html表單的搜索查詢。
帶狀態選項的下拉菜單正常工作 - 任何需要輸入的字段都沒有。
而且我相信字段被提交到數據庫,因爲我可以在phpadmin與他們進行查看和完整的SQL語句
編輯當進入NumericIdentider並選擇所有的默認狀態回聲結果:'選擇*從表關閉!=''
<?php
if($_REQUEST['Search']) {
$sql = "SELECT";
if(strlen($_REQUEST['NumericIdentifier']) > 0) {
$sql .= " * FROM Table Where NumericIdentifier = ".$_REQUEST['NumericIdentifier'];
}
if(strlen($_REQUEST['BeginDate']) > 0) {
$sql .= " * From Table Where TDate >= {$_REQUEST['BeginDate']}";
}
if(strlen($_REQUEST['EndDate']) > 0) {
$sql .= " * From Table Where TDate <= {$_REQUEST['EndDate']}";
}
if($_REQUEST['Status'] == 'Shipped') {
$sql .= "* From Table Where Closed = 'true' ";
}
if($_REQUEST['AreaCode'] > 0) {
$sql .= " * From Table Where AreaCode = {$_REQUEST['AreaCode']}";
}
if($_REQUEST['Status'] == 'Recieved') {
$sql .= " * From Table Where Closed != 'true'";
}
if($_REQUEST['Status'] == 'All') {
$sql = "Select * From Table Where Closed != '\0'";
}
} else {
$sql = "SELECT * FROM Tickets";
}
$res = mysql_query($sql, $conn1);
while($a = mysql_fetch_array($res)) {
echo "<tr><td> <a href='ticket.php?id=".$a['id']."'>".trim($a['id'])."</a> </td> \n <td> ".$a['Name']."</td> \n <td>".date("m/d/Y", strtotime($a['TicketDate']))."</td> \n <td>".$a['Issue']."</td> \n <td>".Showstatus($a['Closed'])." </td></tr>";
} ?>
</table>
</body>
</html>
1.如何在發佈之前打印$ sql並查看結果(也稱爲「調試」)? 2.這些請求中的多個請求可能同時爲真,因此您可能會得到一個非常奇怪的查詢3.您是否真的需要所有列? – Jacob
嘗試在所有if語句之後回顯$ sql。我相信所生成的SQL不是你想要的。然後嘗試在phpmyadmin中執行。 –
我知道組合狀態以及它將如何出錯。事實是,即使它本身沒有正確提交。 – lomayne