[英]Search results not working - mysql, php
我是php和MySQL的新手,但是我試圖運行一個查詢,該查詢將在我的數據庫中搜索一個表,並帶回該條目中某些列的結果。
例如,搜索郵政編碼並返回:姓名,地址,聯系電話,郵政編碼。
誰能為我指出失蹤或哪里出問題的正確方向。
這是下面的細節
最新更新
形成
<td><form action="searchresults.php" method="post" name="form1" id="form1">
<table width="100%" border="0" cellspacing="1" cellpadding="3">
<tr>
<td colspan="3"><strong>Find a Active Physio</strong></td>
</tr>
<tr>
<td width="100">Physio Reference</td>
<td width="301"><input name="PhysioReference" type="text" id="PhysioReference" /></td>
</tr>
<tr>
<td>Name of Physio</td>
<td><input name="Physio" type="text" id="Physio" /></td>
</tr>
<tr>
<td>Contact Number</td>
<td><input name="Number" type="text" id="Number" /></td>
</tr>
<tr>
<td>Address</td>
<td><input name="PhysiosAddress" type="text" id="PhysiosAddress" /></td>
</tr>
<tr>
<td>Postcode</td>
<td><input name="postcode" value="" type="text" id="postcode" />
<input type="submit" name="submit" value="Search" /></td>
</tr>
<tr>
<td>Physios Email</td>
<td><input name="PhysiosEmail" type="text" id="PhysiosEmail" /></td>
</tr>
<tr>
<td colspan="3" align="center"> </td>
</tr>
</table>
</form></td>
搜索結果
<?php
require_once('auth.php');
$host=""; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name=""; // Database name
$tbl_name="Physio"; // Table name
// Connect to server and select database.
mysql_connect($host, $username, $password)or die("cannot connect");
mysql_select_db($db_name)or die("cannot select DB");
if(!isset($_POST['postcode'])) {
header ("location:index.php");
}
$search_sql="SELECT * FROM `Physio` WHERE Postcode like '%".$_POST['postcode']."%'";
$search_query=mysql_query($search_sql);
$search_rs= mysql_num_rows($search_query) ;
echo "<p> Results </p>" ;
echo $_POST['{postcode'] ;
if ($search_rs > 0)
{
echo "<p>".$search_rs['Postcode'] ."</p>" ;
} else {
echo "NO Results found";
}
?>
使用mysql_query()
代替mysql_quesry()
嘗試這個,
$link = mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name", $link)or die("cannot select DB");
$search_sql="SELECT * FROM `Physio` WHERE Postcode like '%".$_POST['physiopostcode']."%'";
$search_query=mysql_query ($search_sql);
?>
<p> Results </p>
<?php
if (mysql_num_rows($search_query)>0) {
while($search_rs=mysql_fetch_assoc($search_query)){
//your code here
}
} else {
echo "NO Results found";
}
實際上您沒有連接到數據庫。
改變這個
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
至
mysql_connect($host, $username, $password)or die("cannot connect");
mysql_select_db($db_name)or die("cannot select DB");
並修正克里什所說的話。
編輯:
嘗試這個
<p> Results </p>
<?php if ($search_rs= mysql_num_rows($search_query) !=0)
{
echo "<p>".$search_rs['postcode'] ."</p>" ;
} else {
echo "NO Results found";
}
?>
整個代碼應該像這樣
require_once('auth.php');
$host=""; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name=""; // Database name
$tbl_name="Physio"; // Table name
// Connect to server and select database.
mysql_connect($host, $username, $password)or die("cannot connect");
mysql_select_db($db_name)or die("cannot select DB");
if(!isset($_POST['physiopostcode'])) {
header ("location:index.php");
}
$search_sql="SELECT * FROM `Physio` WHERE Postcode like '%".$_POST['physiopostcode']."%'";
$search_query=mysql_query($search_sql);
$search_rs= mysql_num_rows($search_query) ;
echo "<p> Results </p>" ;
if ($search_rs > 0)
{
echo "<p>".$search_rs ."</p>" ;
} else {
echo "NO Results found";
}
?>
編輯2:
將您的輸入更改為此
<input name="postcode" value="" type="text" id="postcode" />
目前
<td>Postcode</td>
<td><input name="postcode" value="" type="text" id="postcode" />
<input type="submit" name="submit" value="Search" /></td>
</tr>
編輯3:
您正在拼寫table中的列名,請注意,列名區分大小寫,大寫字母或小寫字母。
更改此: $search_rs['postcode']
到$search_rs
更好的方法是使用存儲過程並轉義POST。
$connection= mysqli_connect("localhost", "root", "pw","database") or die(mysqli_error("error connecting to database"));
$postcode = htmlentities($_POST['physiopostcode']); // Remove HTML tags from user entry
$sql = "SELECT * FROM Physio WHERE Postcode = ?"; // ? is our placeholder
$stmt = $connection->prepare($sql);
$stmt->bind_param('s', $postcode); // Give our placeholder our user entered value
$stmt->execute(); // Execute MySQL query
$result = $stmt->get_result(); // Grab results
if (isset($result)) { // Print results (if any)
while($row = $result->fetch_array(MYSQLI_ASSOC)) {
echo $row['name'];
echo $row['address'];
echo $row['contactnumber'];
echo $row['postcode'];
}
} else {
echo "NO Results found";
};
希望有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.