2013-06-26 32 views
0

我想在用戶輸入他的id並提交後顯示一行。 我的代碼無法正常工作。請糾正這一點。當用戶輸入id時,在mysql表中顯示行

search-form.php看起來像這樣。

</html><body> 
<form method="GET" action="search.php"> 
    Keyfield <input type="text" name="search"> <br><br> 
    <input type="submit" value="submit"> 
</form></body> 
</html> 

的search.php這樣看。

<?php 

$connection =  mysql_connect('localhost','user','pass')  or die ("Couldn't connect to server."); 
$db = mysql_select_db('db', $connection) or die ("Couldn't select  database."); 

$search=$_GET['search']; 

$fetch = 'SELECT * FROM `table` WHERE `ID` = "'.$search.'"'; 
    echo "<table margin=auto width=999px border=1>"; 
     echo "<tr><td><b>ID</b></td><td><b>Name</b></td><td><b>Telephone</b></td><td> <b>E-mail</b></td><td><b>Couttry Applying for</b></td><td><b>Visa-Category</b> </td><td><b>Other Category</b></td><td><b>Passport No</b></td><td> <b>Remarks</b></td></tr>"; 
    for($i=0;$i<$num;$i++) 
    { 
    $row=mysql_fetch_row($fetch); 
    echo "<tr>"; 
    echo"<td>$row[0]</td>"; 
    echo"<td>$row[1]</td>"; 
    echo"<td>$row[2]</td>"; 
    echo"<td>$row[3]</td>"; 
    echo"<td>$row[4]</td>"; 
    echo"<td>$row[5]</td>"; 
    echo"<td>$row[6]</td>"; 
    echo"<td>$row[7]</td>"; 
    echo"<td>$row[8]</td>"; 
    echo"</tr>"; 
    }//for 
    echo"</table>"; 
?> 

當用戶輸入他的ID並提交時顯示。但是這段代碼不會顯示帶有id的行。 糾正這一點。 謝謝。

+4

你永遠不要執行查詢 – George

回答

0

你缺少的mysql_query statement.You獲取結果 修改像 $ SQL之前應執行查詢= 'SELECT * FROM table WHERE ID = 「' $搜索。 '」'; $ fetch = mysql_query($ sql);

+0

也修改您的for循環。$ NUM是未知 – shanavascet

0

的幾點:

  1. 的mysql_connect是過時的,不使用它。例如,使用PDO。
  2. $fetch = 'SELECT * FROMWHERE ID = "'.$search.'"'導致最常見和最嚴重的安全漏洞:SQL注入。請閱讀關於此(谷歌)
  3. 你在哪裏「獲取」你的查詢結果?

關於第3點,假設您將使用PDO的事實,請閱讀http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html

相關問題