-1

我正在尝试从我的数据库中显示由 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
?>
4

3 回答 3

1

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

因此,如果您的页面被调用使用

http://path/to/page.php?id=99

您可以在 $_GET["id"] 中获得 99

POST 类似。

于 2013-04-18T21:13:41.690 回答
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 注入。

于 2013-04-18T21:15:45.223 回答
0

尝试这个:

搜索.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

于 2013-04-18T21:24:17.510 回答