从数据库中检索用户输入

时间:2013-04-18 21:08:59

标签: php mysql

我正在尝试显示我的数据库中的客户记录,该记录由ID确定。 我已经拥有的是一个返回,其中id = 42.我想要做的是使其返回的记录基于用户在上一页输入的id号,即$ customerid。有什么建议吗?

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
    echo 'Could not run query: ' . mysql_error();
    exit;
 }
$row = mysql_fetch_row($result);

echo $row[0]; // 42
echo $row[1]; // the email value
?>

3 个答案:

答案 0 :(得分:1)

您可以分别使用$ _GET [“param_name”]和$ _POST [“param_name”]通过GET或POST获取传递给PHP的参数。

因此,如果使用

调用您的页面
http://path/to/page.php?id=99

你可以在$ _GET [“id”]

中获得99

类似于POST。

答案 1 :(得分:0)

没有看过您的表单,我假设您将POST数据。 以下是我对如何处理数据的建议:

$id=isset($_POST['id'])&&is_numeric($_POST['id'])?$_POST['id']:false;

if ($id) {

  $result = mysql_query("SELECT id,email FROM people WHERE id = $id;");
  if (!$result) {
    echo 'Could not run query: ' . mysql_error();
    exit;
   }
  $row = mysql_fetch_row($result);

  echo $row[0]; // 42
  echo $row[1]; // the email value

} else {
  echo "ERROR: No ID specified.";
}

另外,考虑使用PDO,因为mysql_ *语句是折旧的。至少,研究如何防止SQL注入。

答案 2 :(得分:0)

试试这个:

的search.php

<form action="show_record.php" method="post">
<input name="customer_id" />
</form>

show_record.php

<?php
    // use $_REQUEST to get a parameter from POST OU GET request method
    $id = isset($_REQUEST["customer_id"]) ? $_REQUEST["customer_id"] : 0; 

    $id = mysql_real_escape_string(); // prevent sql inject

    $result = mysql_query("SELECT id,email FROM people WHERE id = '$id'");
    if (!$result) {
        echo 'Could not run query: ' . mysql_error();
        exit;
     }
    $row = mysql_fetch_row($result);

    echo $row[0]; // 42
    echo $row[1]; // the email value

    ?>

所以,你可以从POST或GET请求页面show_record.php,无论如何答案都是一样的。

通过GET:

本地主机/ show_record.php?CUSTOMER_ID = 42