2014-11-06 66 views
0

我有一個頁面index.php,它有三個關鍵字,用戶可以在其中搜索數據庫。此頁面代碼在php中使用多個關鍵字搜索數據庫

<section id="services" class="emerald"> 
     <div class="container"> 
      <form class="form-horizontal" role="form" action="search.php" enctype="multipart/form-data" method="post"> 
       <div class="row"> 
        <div class="col-md-4 col-sm-6"> 
         <div class="media"> 
          <div class="media-body"> 
           <?php 
            $servername = "xyz.com"; 
            $username = "xyz"; 
            $password = "xyz123"; 
            $dbname = "xyz"; 

            // Create connection 
            $con = mysqli_connect($servername, $username, $password, $dbname); 
            // Check connection 
            if (!$con) { 
             die("Connection failed: " . mysqli_connect_error()); 
            } 

            $sql = "SELECT treatment_type FROM treatment_type"; 
            $result = $con->query($sql); 
            echo "<label for='treatment_type'>Treatment Type: </label>"; 
            echo "<select name='treatment_type' id='treatment_type' class='form-control'>"; 
            while($row = $result->fetch_assoc()) { 
            echo "<option value='" . $row['treatment_type'] . "'>" . $row['treatment_type'] . "</option>"; 
            } 
            echo "</select>"; 
           ?> 
          </div> 
         </div> 
        </div> 


        <div class="col-md-4 col-sm-6"> 
         <div class="media"> 
          <div class="media-body"> 
           <?php 
            $servername = "xyz.com"; 
            $username = "xyz"; 
            $password = "xyz123"; 
            $dbname = "xyz"; 

            // Create connection 
            $con = mysqli_connect($servername, $username, $password, $dbname); 
            // Check connection 
            if (!$con) { 
             die("Connection failed: " . mysqli_connect_error()); 
            } 

            $sql = "SELECT course FROM course"; 
            $result = $con->query($sql); 
            echo "<label for='course'>Course/Conference Type: </label>"; 
            echo "<select name='course' id='course' class='form-control'>"; 
            while($row = $result->fetch_assoc()) { 
            echo "<option value='" . $row['course'] . "'>" . $row['course'] . "</option>"; 
            } 
            echo "</select>"; 
           ?> 

          </div> 
         </div> 
        </div><!--/.col-md-4--> 

        <div class="col-md-4 col-sm-6"> 
         <div class="media-body"> 
          <?php 
           $servername = "xyz.com"; 
           $username = "xyz"; 
           $password = "xyz123"; 
           $dbname = "xyz"; 

           // Create connection 
           $con = mysqli_connect($servername, $username, $password, $dbname); 
           // Check connection 
           if (!$con) { 
            die("Connection failed: " . mysqli_connect_error()); 
           } 

           $sql = "SELECT facilities FROM facilities"; 
           $result = $con->query($sql); 
           echo "<label for='facilities'>Facilities: </label>"; 
           echo "<select name='facilities' id='facilities' class='form-control'>"; 
           while($row = $result->fetch_assoc()) { 
           echo "<option value='" . $row['facilities'] . "'>" . $row['facilities'] . "</option>"; 
           } 
           echo "</select>"; 
          ?> 


         </div> 
        </div> 

        <div class="col-md-4 col-sm-6"> 
         <div class="media-body"> 
          <div class="col-md-8"> 
           <input class="btn btn-primary" value="Search" type="submit" name="submit"> 

          </div> 
         </div> 
        </div> 
       </div> 
      </form> 
     </div> 
    </section> 

代碼的search.php

<?php 
error_reporting(0); 

$con=mysqli_connect("xyz.com","xyz","xyz123","xyz"); 
// Check connection 
if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$treatment_type = mysqli_real_escape_string($con, $_POST['treatment_type']); 
$course = mysqli_real_escape_string($con, $_POST['course']); 
$facilities = mysqli_real_escape_string($con, $_POST['facilities']); 

$sql1 = "SELECT * FROM office WHERE keywords LIKE '%$treatment_type' and '%$course' and '%$facilities'"; 
$result = mysqli_query($con, $sql1); 

if (mysqli_num_rows($result) > 0) 
    { 
     while($row = mysqli_fetch_assoc($result)) { 
     echo "Office name: " . $row["office_name"]. " - Location: " . $row["office_address"]. " " . $row["office_city"]. "<br>"; 
    } 
} else { 
    echo "0 results"; 
} 
mysqli_close($con); 
?> 

什麼,我試圖做的是,當用戶點擊搜索鏈接,用戶被重定向到另一個searchresult.php頁面,其中一個顯示所有可用詳細信息的列表。但是當我運行腳本時,即使值存在於數據庫中,我也會得到值爲0的結果。

+0

也許需要使用' '%$ VAR%'''因爲'%$ var''說,尋找一些與$ var的結束。你需要使用關鍵字LIKE'%$ var%'和關鍵詞LIKE'%var%'...' – Class 2014-11-06 06:26:47

+0

我建議你打印搜索查詢並運行在db/phpmyadmin – 2014-11-06 06:29:09

+0

@Ram Sharma有一個錯誤,但我不是能夠識別它 – Sam 2014-11-06 06:36:19

回答

1

嘗試此查詢在searchresult.php

$sql1 = "SELECT * FROM office WHERE keywords LIKE '%$treatment_type%' 
or keywords LIKE '%$course%' or keywords LIKE '%$facilities%'"; 
+0

請注意,這將是緩慢的,但你可能沒有選擇,沒有大量重新設計 – Strawberry 2014-11-06 08:14:29

相關問題