2015-12-30 33 views
1

當我搜索時,我得到一個結果,但它返回一個空白表格。我能夠完成一個沒有錯誤的搜索,但是當完成搜索時,HTML是空的。我無法弄清楚這裏有什麼問題。 MySQL的連接已經改變顯而易見的原因,這裏是我的代碼:PHP/MySQL搜索查詢返回空白表格

<?php 
    define('DB_NAME', 'name'); 
    define('DB_USER', 'user'); 
    define('DB_PASS', 'password'); 
    define('DB_HOST', 'localhost'); 

    $link = mysql_connect(DB_HOST, DB_USER, DB_PASS); 

    if (!$link) { 
     dir('There was a problem when trying to connect to the host. Error: ' . mysql_error());  
    } 

    $db_selected = mysql_select_db(DB_NAME, $link); 

    if (!$link) { 
     dir('There was a problem when trying to connect to the database. Error: ' . mysql_error());  
    } 

    $output = ""; 

    if (isset($_POST['search'])) { 
     $searchq = $_POST['search']; 

     $query = mysql_query("SELECT * FROM fac WHERE firstname LIKE '%$searchq%' OR lastname LIKE '%$searchq%'") or die("Could not complete search"); 
     $count = mysql_num_rows($query); 
     if ($count == 0) { 
      $output = 'There where no search results'; 
     }else {    
      while ($row = mysql_fetch_array($query)) { 
       $fname = $_POST['firstname']; 
       $mname = $_POST['middlename']; 
       $lname = $_POST['lastname']; 
       $address = $_POST['address']; 
       $car_type = $_POST['car_type']; 
       $plate_number = $_POST['plate_number']; 
       $intel = $_POST['intel']; 

       $output .='<div> ID:'.$id.' <br /> First Name: </> '.$fname.' <br /> Middle Name: </>'.$mname.' <br /> Last Name: </> '.$lname.' <br /> Address: </> '.$address.' <br /> Car Type: </>'.$car_type.'<br /> Plate Number: </> '.$plate_number.' <br /> Intel: </> '.$intel.' <br /> </h3> </div> <br />'; 
      } 
     }  
    } 
?> 
<html> 
    <head> 
     <title>Search</title> 
    </head> 
    <body> 
     <form action="search-entry-fac.php" method="post"> 
      <input type="text" name="search" placeholder="Search For Entry"> 
      <input type="submit" name="search_submit" value=">>" 
     </form> 
     <br /> 
     <?php print("$output"); ?> 
    </body> 
</html> 
+0

啊,是的,工作。謝謝 – thomasjohnston

回答

2

在代碼中,你正在使用$_POST代替$row

它應該是這樣的:

while ($row = mysql_fetch_array($query)) { 
    $fname = $row['firstname']; 
    $mname = $row['middlename']; 
    $lname = $row['lastname']; 
    $address = $row['address']; 
    $car_type = $row['car_type']; 
    $plate_number = $row['plate_number']; 
    $intel = $row['intel']; 

旁註:在這個代碼$output .='<div> ID:'.$id.' <br /> [...]',您使用的是被稱爲$id變量,沒有$id = SOMETHING;,所以我認爲你缺少$id = $row['YOUR_ID_COLUMN'];


注2:看到這種類型的錯誤回報的,你可以在 How do I get PHP Errors to display?

注3看一看:mysql_* functions are deprecated and should be avoided。由於這可能是用戶輸入,請看看How can I prevent SQL-injection in PHP?

+0

太棒了,謝謝。 – thomasjohnston

+0

@ thomasjohnston,很樂意幫忙。 – FirstOne