2013-04-18 164 views
-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 
?> 

回答

1

你可以通过分别以$ _GET [ “PARAM_NAME”]和$ _POST [ “PARAM_NAME”] GET或POST传递给PHP的参数。

因此,如果您的网页使用

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

叫您可以在$ _GET [ “身份证”]

类似的POST得到99。

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注入。

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请求的页面show_record.php或GET,反正答案是相同的。

通过GET:

本地主机/ show_record.php CUSTOMER_ID = 42