2017-01-22 1 views
1

私は指定された地域で医者を探し出して一覧表示するウェブページを作成しています。質問するデータを提供する

私の両方のPHPスクリプトは次のとおりです。

<!DOCTYPE html> 
    <html lang="en"> 
    <head> 
    <meta charset="UTF-8"> 
    <title>Live Doctor Search.</title> 
    <style type="text/css"> 
     body{ 
      font-family: Arail, sans-serif; 
     } 


     /* Formatting search box */ 
     .search-box{ 
      width: 300px; 
      position: relative; 
      display: inline-block; 
      font-size: 14px; 
      margin: 0 50%; 
     } 
     .search-box input[type="text"]{ 
      height: 32px; 
      padding: 5px 10px; 
      border: 1px solid #CCCCCC; 
      font-size: 14px; 
     } 
     .result{ 
      position: absolute;   
      z-index: 999; 
      top: 100%; 
      left: 0; 
     } 
     .search-box input[type="text"], .result{ 
      width: 100%; 
      box-sizing: border-box; 
     } 
     /* Formatting result items */ 
     .result p{ 
      margin: 0; 
      padding: 7px 10px; 
      border: 1px solid #CCCCCC; 
      border-top: none; 
      cursor: pointer; 
     } 
     .result p:hover{ 
      background: #f2f2f2; 
     } 
    </style> 
    <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script> 
    <script type="text/javascript"> 
    $(document).ready(function(){ 
     $('.search-box input[type="text"]').on("keyup input", function(){ 
      /* Get input value on change */ 
      var term = $(this).val(); 
      var resultDropdown = $(this).siblings(".result"); 
      if(term.length){ 
       $.get("backend-search.php", {query: term}).done(function(data){ 
        // Display the returned data in browser 
        resultDropdown.html(data); 
       }); 
      } else{ 
       resultDropdown.empty(); 
      } 
     }); 

     // Set search input value on click of result item 
     $(document).on("click", ".result p", function(){ 
      $(this).parents(".search-box").find('input[type="text"]').val($(this).text()); 
      $(this).parent(".result").empty(); 
     }); 
    }); 
    </script> 
    </head> 
    <body> 

       Select Your City: 
      <select name="city_nname"> 
       <option value="Udaipur">Udaipur</option> 
       <option value="Jaipur">Jaipur</option> 
       <option value="Jodhpur">Jodhpur</option> 
       <option value="Sikar">Sikar</option> 
       <option value="Surat">Surat</option> 
       <option value="Ahmedabad">Ahmedabad</option> 
       <option value="badoda">badoda</option> 
       <option value="Pune">Pune</option> 
       <option value="Bangalore">Bangalore</option> 
      </select> 


      <div class="search-box"> 
       <input type="text" autocomplete="off" placeholder="Search doctor..." /> 
       <button type="submit" class="btn">Search</button> 
      <div class="result"></div> 
      </div> 

    </body> 
    </html> 

上記のコードは私のsearch_form.phpです。今私はcity_nnameに属する医師の名前だけを列挙したいと思います。

は、ここに私のPHPバックエンドコード

<?php 
/* Attempt MySQL server connection. Assuming you are running MySQL 
server with default setting (user 'root' with no password) */ 
$link = mysqli_connect("localhost", "root", "", "demo_db"); 

// Check connection 
if($link === false){ 
    die("ERROR: Could not connect. " . mysqli_connect_error()); 
} 

// Escape user inputs for security 
$query = mysqli_real_escape_string($link, $_REQUEST['query']); 

if(isset($query)){ 
    // Attempt select query execution 
    $sql = "SELECT * FROM doctors WHERE doctor_name LIKE '" . $query . "%'"; 
    if($result = mysqli_query($link, $sql)){ 
     if(mysqli_num_rows($result) > 0){ 
      while($row = mysqli_fetch_array($result)){ 
       echo "<p>" . $row['doctor_name'] . "</p>"; 
      } 
      // Close result set 
      mysqli_free_result($result); 
     } else{ 
      echo "<p>No matches found for <b>$query</b></p>"; 
     } 
    } else{ 
     echo "ERROR: Could not able to execute $sql. " . mysqli_error($link); 
    } 
} 

// close connection 
mysqli_close($link); 
?> 

は、今私は(検索ボックスから)city_nnameとdoctor_nameを取り、その後、その都市に属している医師のリストを与えるmysqlのクエリをしたいです。

+0

-search.php関連するデータベーススキーマ。 –

+0

サイドノート: 'Arail'は有効なフォントではありません。 –

答えて

0

「//この行を追加」と「//この行を変更」することによって、コメントしている行を変更します

search_form.php

<!DOCTYPE html> 
    <html lang="en"> 
    <head> 
    <meta charset="UTF-8"> 
    <title>Live Doctor Search.</title> 
    <style type="text/css"> 
     body{ 
      font-family: Arail, sans-serif; 
     } 


     /* Formatting search box */ 
     .search-box{ 
      width: 300px; 
      position: relative; 
      display: inline-block; 
      font-size: 14px; 
      margin: 0 50%; 
     } 
     .search-box input[type="text"]{ 
      height: 32px; 
      padding: 5px 10px; 
      border: 1px solid #CCCCCC; 
      font-size: 14px; 
     } 
     .result{ 
      position: absolute;   
      z-index: 999; 
      top: 100%; 
      left: 0; 
     } 
     .search-box input[type="text"], .result{ 
      width: 100%; 
      box-sizing: border-box; 
     } 
     /* Formatting result items */ 
     .result p{ 
      margin: 0; 
      padding: 7px 10px; 
      border: 1px solid #CCCCCC; 
      border-top: none; 
      cursor: pointer; 
     } 
     .result p:hover{ 
      background: #f2f2f2; 
     } 
    </style> 
    <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script> 
    <script type="text/javascript"> 
    $(document).ready(function(){ 
     $('.search-box input[type="text"]').on("keyup input", function(){ 
      /* Get input value on change */ 
      var term = $(this).val(); 
      var city_nname = $("#city_nname").val(); // Add this line 
      var resultDropdown = $(this).siblings(".result"); 
      if(term.length){ 
       $.get("backend-search.php", {query: term, city:city_nname}).done(function(data){  // Modify this line 
        // Display the returned data in browser 
        resultDropdown.html(data); 
       }); 
      } else{ 
       resultDropdown.empty(); 
      } 
     }); 

     // Set search input value on click of result item 
     $(document).on("click", ".result p", function(){ 
      $(this).parents(".search-box").find('input[type="text"]').val($(this).text()); 
      $(this).parent(".result").empty(); 
     }); 
    }); 
    </script> 
    </head> 
    <body> 

       Select Your City: 
      <select name="city_nname" id="city_nname"> <!-- Modify this line --> 
       <option value="Udaipur">Udaipur</option> 
       <option value="Jaipur">Jaipur</option> 
       <option value="Jodhpur">Jodhpur</option> 
       <option value="Sikar">Sikar</option> 
       <option value="Surat">Surat</option> 
       <option value="Ahmedabad">Ahmedabad</option> 
       <option value="badoda">badoda</option> 
       <option value="Pune">Pune</option> 
       <option value="Bangalore">Bangalore</option> 
      </select> 


      <div class="search-box"> 
       <input type="text" autocomplete="off" placeholder="Search doctor..." /> 
       <button type="submit" class="btn">Search</button> 
      <div class="result"></div> 
      </div> 

    </body> 
    </html> 

バックエンドによって、コメントしている行を追加してください。ポスト

<?php 
/* Attempt MySQL server connection. Assuming you are running MySQL 
server with default setting (user 'root' with no password) */ 
$link = mysqli_connect("localhost", "root", "", "bbtest"); 

// Check connection 
if($link === false){ 
    die("ERROR: Could not connect. " . mysqli_connect_error()); 
} 

// Escape user inputs for security 
$query = mysqli_real_escape_string($link, $_REQUEST['query']); 
$city = mysqli_real_escape_string($link, $_REQUEST['city']); // Add this line 

if(isset($query)){ 
    // Attempt select query execution 
    $sql = "SELECT * FROM doctors WHERE doctor_name LIKE '" . $query . "%' AND city_nname='".$city."'"; // modify the table column name "city_nname" as like yours 
    if($result = mysqli_query($link, $sql)){ 
     if(mysqli_num_rows($result) > 0){ 
      while($row = mysqli_fetch_array($result)){ 
       echo "<p>" . $row['doctor_name'] . "</p>"; 
      } 
      // Close result set 
      mysqli_free_result($result); 
     } else{ 
      echo "<p>No matches found for <b>$query</b></p>"; 
     } 
    } else{ 
     echo "ERROR: Could not able to execute $sql. " . mysqli_error($link); 
    } 
} 

// close connection 
mysqli_close($link); 
?> 
+0

ありがとう@Atanu感謝しています:-) –

+0

あなたは 'Arail'が有効なフォントではないことを知っていたはずです。 –

+0

さらに、この質問を解決したここで何をしたのか説明したはずです。それ以外の場合は、自分と同じように、違いを見つけるために両方のコードを実行する必要があります。 –

0

SELECT * FROM doctors WHERE doctor_name LIKE 'doctor_name%' AND city_nname='city_nname'?私はあなたが解決策を洗い出す際に抱えている問題をかなり解決することはできません。

関連する問題