2014-02-13 45 views
0

嗨我的表單中的搜索不會帶來MySQL數據庫中表中的數據。我的sql查詢中的數據不會被顯示

例如我想搜索郵政編碼並帶回:姓名,地址,聯繫電話,郵政編碼。

任何一個可以幫我看看什麼是錯在我的代碼作爲即時通訊非常新的PHP和MySQL

這裏是phpMyAdmin的我的表項

參考,名稱,1號線,2號線,3號線,線路4 ,5號線,郵編,電話,手機,傳真,電子郵件

形式

<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>" ; 
    if ($search_rs > 0) 
    { 
    echo "<p>".$search_rs['Postcode'] ."</p>" ; 

    } else { 
    echo "NO Results found"; 
    } 
    ?> 
+0

作爲一個方面說明做:不要把$ _ POST []裸您的查詢中。用mysql_real_escape_string()封裝它。如果有人輸入「%」聯盟所有選擇的用戶,電子郵件,通過1,1,1,1從用戶,其中1像'1%' – winkbrace

回答

1

您只能收到很多結果(請參閱mysql_num_rows()手冊頁),而不是結果本身。使用mysql_fetch_array()代替:

$search_sql = "SELECT * FROM `Physio` WHERE Postcode like '%" . $_POST['postcode'] . "%'"; 
$search_query = mysql_query($search_sql); 
$search_rs = mysql_fetch_array($search_query); 

在此之後,你可以看一看是由歸國:

if (!empty($search_rs)) 
{ 
    // Results found 
} 
else 
{ 
    // Nothing found... 
} 

順便說一句,通過直接$_POST值SQL代碼是非常大的安全問題,至少逃生它與mysql_real_escape_string()

編輯:接收多個結果:

$search_sql = "SELECT * FROM `Physio` WHERE Postcode like '%" . $_POST['postcode'] . "%'"; 
$search_query = mysql_query($search_sql); 

while ($search_rs = mysql_fetch_array($search_query)) 
{ 
    echo $search_rs['Postcode'] . '<br>'; 
} 
+0

工作,但它只買回一個結果,我怎麼能得到多個結果然後把選擇的結果放回到我的表單中...感謝 – user3301611

+0

我只是編輯我的文章,並告知如何接收多條記錄。 –

+0

多個結果很好,我只是通過添加額外的字段添加額外的列?例如在郵編下添加'echo $ search_rs ['Tel']。 '
';'..... 在哪裏我會把mysql_real_escape_string()。避免安全問題。 – user3301611

0

你應該得到與mysql_fetch_assoc(值)(或mysql_fetch_array或mysql_result()):

if ($search_rs > 0) 
{ 
    $search_row = mysql_fetch_assoc($search_query); 
    echo "<p>".$search_row['Postcode'] ."</p>" ; 

} else { 
    echo "NO Results found"; 
} 

也是此行有一個語法錯誤:

echo $_POST['{postcode'] ; 

應該是echo $_POST['postcode'] ;

0

嘗試改變這個: echo $ _POST ['{postcode']; 對此: echo $ _POST ['postcode'];

我真的不能看到什麼{應該在你的代碼:)