[英]php search works as seperate page, but not on same page
我正在做一個項目,在這里我可以在html頁面上使用多種形式來搜索和更新mysql數據庫中的表。 我創建了一個基本的html表單,它將在單獨的php文件上運行搜索。 當我嘗試將相同的php腳本集成到相同的html中時,沒有任何結果。 任何幫助,將不勝感激。
基本的html
<html>
<body>
<form name="search" method="post" action="searchresults.php">
<input name="search" type="text" size="40" maxlength="50" />
<input type="submit" name="Submit" value="Search" />
</form>
</body>
</html>
搜索PHP
<?php
$database = "dbname";
$username = "name";
$password = "pass";
$host = "host";
$conn = new mysqli($host, $username, $password, $database);
if ($conn->connect_error){
die("Failed:" . $conn->connect_error);
}
echo"Successful";
$query = $_POST['search'];
$query = htmlspecialchars($query);
$raw_results = mysqli_query($conn,"SELECT * FROM beers WHERE name LIKE '%".$query."%'");
if(mysqli_num_rows($raw_results) > 0){ // if one or more rows are returned do following
while($results = mysqli_fetch_array($raw_results)){
echo "<p><h3>".$results['Name']."</h3>".$results['Brewery']."</p>";
}
}
else{ // if there is no matching rows do following
echo "No results";
}
?>
這可以分開工作,但是如果我復制相同的php腳本並將其插入到主要的html中,則它會連接但沒有結果。 嘗試使用_GET
而不是_POST
刪除了操作字段,並且Ive到處搜索了類似的問題。 如果我將所有內容完全縮小,則會給我$query = htmlspecialchars($query);
的解析錯誤$query = htmlspecialchars($query);
, 有什么想法嗎?
if (isset($query)) {...}
。 僅當搜索名稱有效時,您才能獲得結果。
<?php
$query = $_POST['search'];
// Apply validation.
if (isset($query)) {
$query = htmlspecialchars($query);
echo"Successful";
$conn = new mysqli($host, $username, $password, $database);
if ($conn->connect_error) {
die("Failed:" . $conn->connect_error);
}
$raw_results = mysqli_query($conn, "SELECT * FROM beers WHERE name LIKE '%" . $query . "%'");
if (mysqli_num_rows($raw_results) > 0) { // if one or more rows are returned do following
while ($results = mysqli_fetch_array($raw_results)) {
echo "<p><h3>" . $results['Name'] . "</h3>" . $results['Brewery'] . "</p>";
}
} else { // if there is no matching rows do following
echo "No results";
}
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.