我有一個PHP網站來顯示產品。我需要介紹一個'搜索'功能,可以在多個產品中找到關鍵字或短語。搜索PHP網站與MySQL數據庫的腳本
我經歷了一些現有的腳本,並寫了/修改了一個雖然能夠連接到數據庫,但不返回任何值。調試模式會發出警告「mysqli_num_rows()
期望參數1爲mysqli_result,布爾給定」。似乎我沒有正確收集查詢值。在PHP手冊說,mysqli_query()
回報失敗和成功的SELECT,SHOW FALSE,描述或解釋查詢mysqli_query()
會返回一個mysqli_result
對象和其他成功的查詢mysqli_query()
將返回TRUE」。
有什麼建議?
<form name="search" method="post" action="search.php">
<input type="text" name="searchterm" />
<input type="hidden" name="searching" value="yes" />
<input type="submit" name="submit" value="Search" />
</form>
<?php
$searchterm=trim($_POST['searchterm']);
$searching = $_POST['searching'];
$search = $_POST['search'];
//This is only displayed if they have submitted the form
if ($searching =="yes")
{
echo 'Results';
//If they forget to enter a search term display an error
if (!$searchterm)
{
echo 'You forgot to enter a search term';
exit;
}
//Filter the user input
if (!get_magic_quotes_gpc())
$searchterm = addslashes($searchterm);
// Now connect to Database
@ $db = mysqli_connect('localhost','username','password','database');
if (mysqli_connect_errno()) {
echo 'Error: Could not connect to the database. Please try again later.';
exit;
}
else {
echo "Database connection successful."; //Check to see whether we have connected to database at all!
}
//Query the database
$query = "SELECT * FROM wp_posts WHERE post_title LIKE '%$searchterm%' OR post_excerpt LIKE '%$searchterm%' OR post_content LIKE '%$searchterm%'";
$result = mysqli_query($db, $query);
if (!$result)
echo "No result found";
$num_results = mysqli_num_rows($result);
echo "<p>Number of match found: ".$num_results."</p>";
foreach ($result as $searchResult) {
print_r($searchResult);
}
echo "You searched for $searchterm";
$result->free();
$db->close();
}
更正了@Rasclatt指出的錯誤代碼。 – Manish 2014-09-27 11:35:30
那你有工作嗎? – Rasclatt 2014-09-27 16:03:15
不,它沒有。如上所述,似乎我無法在'mysqli_query()'函數中正確收集返回對象/值。 – Manish 2014-09-27 16:53:55