搜索用户详细信息表单

时间:2012-01-09 15:25:21

标签: php mysql html

我想知道是否有人可以帮忙。

我正在尝试整理一个表单,允许管理员通过他们的电子邮件地址搜索用户,并在表单上的相关文本字段中插入“first”和“surname”值。

我已经能够使“搜索”功能正常工作并检索到正确的结果。但是,我找不到将检索到的“first”和“surname”值插入到表单上相关文本字段中的方法。

这是我放在一起的表格

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<form action="search.php" method="post">      
  <p>Search: 
    <input name="emailaddress" type="text" id="emailaddress" />
    <br />     
    <input type="submit" name="submit" value="Submit" />     
</p>
  <p>
    <label>
    <input name="forename" type="text" id="forename" value="<?php echo isset($forename)?>" /> 
    </label>
  </p>
  <p>
    <input name="surname" type="text" id="surname" value="<?php echo isset($surname)?>" /> 
  </p>
  <p>&nbsp;  </p>
</form> 
</body>
</html>

以下是我用来检索用户信息的PHP脚本。

<?php 
require("phpfile.php"); 

// Opens a connection to a MySQL server 

$connection=mysql_connect ("hostname", $username, $password); 
if (!$connection) { die('Not connected : ' . mysql_error());} 

// Set the active MySQL database 

$db_selected = mysql_select_db($database, $connection);  
if (!$db_selected) {  
  die ('Can\'t use db : ' . mysql_error());  
}  

//<form action="phpfile.php" method="post">  
//<input name="emailaddress" type="text" id="emailaddress" /> 
// --> $_POST['emailaddress'] 
$emailaddress_sql = mysql_real_escape_string($_POST['emailaddress'], $connection); 
$sql = mysql_query("SELECT * FROM userdetails WHERE emailaddress like '%{$emailaddress_sql}%'");  

while( false!=($row = mysql_fetch_array($sql)) ) {  
    echo 
        $row['forename'], ' ',  
        $row['surname'],  
        "<br />\n";  
} 

我只是想知道是否有人可以看看这个请让我知道我哪里出错了。

非常感谢

3 个答案:

答案 0 :(得分:1)

所有,非常感谢你对此的帮助。

经过一些研究后,我找到了一个我能够进行更改的示例,因此解决方案如下:

<?php 
mysql_connect ("hostname","username","password") or die (mysql_error()); 
mysql_select_db ("databasename"); 
$emailaddress = $_POST['emailaddress']; 
$sql = mysql_query("select * from userdetails where emailaddress like '$emailaddress'"); 
while ($row = mysql_fetch_array($sql)){ 
$forename = $row['forename']; 
$surname = $row['surname']; 
//we will echo these into the proper fields 
} 
?> 
<html> 
<head> 
<title>Search the Database</title> 
</head> 
<body> 
<form action="search.php" method="post"> 
Search: <input type="text" id="emailaddress" name="emailaddress"/><br />
First Name:<br/> 
<input type="text" value="<?php echo $forename;?>" name="forename"/> 
<br/> 
Surname:<br/> 
<input type="text" value="<?php echo $surname;?>" name="surname"/> 
<br/> 
<input type="submit" name="submit" value="Submit" /> 
</form> 
</body> 
</html>

答案 1 :(得分:0)

I.尝试将它们放入$ _SESSION或$ _COOKIE,并在表单中尝试访问$ _COOKIE或$ _SESSION ......

II。我会建议你使用jQuery调用这个脚本并接收带有数据的JSON并填充输入...

答案 2 :(得分:0)

如果您将操作设置为action =“”而不是search.php并在HTML之前的页面顶部执行查询,则可以在正文中使用$ row ['forename']等就像你现在拥有它一样(当然除了正确的变量名称)。

否则,如果您将结果保存在该脚本中,我建议将其添加到脚本的末尾:

<?
header("Location: originalpage.html?fn=".$row['forename']."&sn=".$row['surname']);
?>

并使用$ _GET ['fn']和$ _GET ['sn']放置在value =“”字段中。