簡體   English   中英

搜索結果不起作用-MySQL,PHP

[英]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">&nbsp;</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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM