0

ユーザーがIDを入力して送信したときに行を表示したい。コードが正しく動作しません。これを修正してください。

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

2 に答える 2

0

mysql_query ステートメントがありません。結果を取得する前にクエリを実行する必要があります $sql= 'SELECT * FROM tableWHERE ID= "'.$search.'"'; のように変更します。$fetch = mysql_query($sql);

于 2013-06-26T09:36:00.227 に答える
0

いくつかのポイント:

  1. mysql_connect は廃止されました。使用しないでください。たとえば、代わりに PDO を使用します。
  2. $fetch = 'SELECT * FROMテーブルWHEREID= "'.$search.'"'は、最も一般的で重大なセキュリティ上の欠陥である SQL インジェクションにつながります。これについて読んでください(グーグル)
  3. クエリの結果をどこで「取得」しますか?

ポイント 3 については、PDO を使用することを前提として、http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html をお読みください。

于 2013-06-26T09:38:41.923 に答える