2013-04-18 214 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