我需要一些關於如何設置這個頁面的幫助。假設我有一個包含5個左右數據字段的mysql表(即id,firstname,lastname,favorite color,favorite number)。我想讓用戶能夠搜索表格,因此我創建了一個「搜索」頁面。設置一個mysql「搜索」頁面
在頁面上,我將有ID,姓氏和名字的文本字段。從這裏用戶將插入數據進行搜索。我想我感到困惑的是我如何編寫一個腳本,它可以從文本字段獲取不同的搜索條件,並忽略空白的字段。例如,如果用戶只輸入第一個或最後一個名字,則將顯示具有相同第一個/最後一個名字的所有條目。如果他們只插入id(將是唯一的),那麼將顯示該用戶的所有內容。如果他們同時輸入姓氏和姓氏,則會顯示具有姓氏和姓氏的條目的所有數據。
我想這是基本的,但我是新來的,所以任何幫助如何設置這將是不勝感激。
代碼更新:
<?php
//Connect and select database
//if user wants to search
if(isset($_POST['submit']))
{
$sqlConditions = array();
if(isset($_POST['id'])){
$id = filter_var($_POST['id'], FILTER_VALIDATE_INT);
$sqlConditions[] = 'id = ' . $id;
} else {
$id = 0;
}
if(isset($_POST['firstname'])){
$firstName = filter_var($_POST['firstname'], FILTER_SANITIZE_STRING);
$sqlConditions[] = 'firstname = ' . $firstName;
} else {
$firstName = '';
}
if(isset($_POST['lastname'])){
$lastName = filter_var($_POST['lastname'], FILTER_SANITIZE_STRING);
$sqlConditions[] = 'lastname = ' . $lastName;
} else {
$lastName = '';
}
$query = 'SELECT * FROM students WHERE ' . join (' AND ', $sqlConditions);
//print query
while ($row = $query->fetch_row())
{
print "LastName = " . $row[0] . " FirstName = " . $row[1].
"Favorite Color = " . $row[2] . " Favorite Number = " . $row[3] . "<br /><br />\n";
}
}
?>
<html>
<body>
<form method = "POST" action = "<?php echo $_SERVER['PHP_SELF']; ?>">
<p>ID:<input type = "id" id="id" name="id" size="20" maxlength="40" /></p>
<p>First Name:<input type = "firstname" id="firstname" name="firstname" size="20" maxlength="40" /></p>
<p>Last Name:<input type = "lastname" id="lastname" name="lastname" size="20" maxlength="40" /></p>
<input type="submit" id="submit" name ="submit" value="Search" />
</form>
</body>
</html>
這是偉大的!我試過這種方法(請參閱上面我更新的代碼),但是我似乎無法獲得要在頁面上打印的結果。有什麼我做錯了嗎?謝謝:) –
$查詢只是一個字符串。您需要執行查詢,然後您可以獲取結果。請閱讀:http://php.net/PDO –
感謝您的幫助。我開始閱讀,雖然困惑,我想出了這個:$ result = $ connection-> query($ query); $ row = $ result-> fetch(PDO :: FETCH_ASSOC); print_r($ row); ...這是我需要的嗎?我試過這個,但是我被轉發到了一個空白頁面。 –