mysql php中输入框中的搜索值
我试图使用HTML中带有提交按钮的form方法从表中搜索用户名,我真正想要的是,当用户在输入框中写入他的电子邮件地址并按提交时,查询应该回显与该电子邮件地址关联的用户名 但问题是,当我按下搜索按钮时,它会显示该表上的所有用户名,而不是仅显示一个。我的“付款”表包含以下值:id、产品id、付款人电子邮件、用户名、密码 我的代码如下。提前谢谢mysql php中输入框中的搜索值,php,mysql,search,Php,Mysql,Search,我试图使用HTML中带有提交按钮的form方法从表中搜索用户名,我真正想要的是,当用户在输入框中写入他的电子邮件地址并按提交时,查询应该回显与该电子邮件地址关联的用户名 但问题是,当我按下搜索按钮时,它会显示该表上的所有用户名,而不是仅显示一个。我的“付款”表包含以下值:id、产品id、付款人电子邮件、用户名、密码 我的代码如下。提前谢谢 <?php // Database Connection String $con = mysql_connect($db_hostname
<?php
// Database Connection String
$con = mysql_connect($db_hostname,$db_username,$db_password);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db($db_database, $con);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<form action="" method="post">
Search: <input type="text" name="term" /><br />
<input type="submit" value="Submit" />
</form>
<?php
if (!empty($_REQUEST['term'])) {
$term = mysql_real_escape_string($_REQUEST['term']);
$sql = "SELECT * FROM payments WHERE payer_email LIKE '%".$term."%'";
$r_query = mysql_query($sql);
while ($row = mysql_fetch_array($r_query)){
echo 'Username: ' .$row['username'];
}
}
?>
</body>
</html>
搜索:
试试这个
<?php
if (!empty($_REQUEST['payer_email'])) {
$term = mysql_real_escape_string($_REQUEST['payer_email']);
$sql = "SELECT * FROM payments WHERE payer_email ='{$term}'";
$r_query = mysql_query($sql);
$row = mysql_fetch_assoc($r_query)
echo 'Username: ' .$row['username'];
}
?>
您确定该电子邮件中没有多个用户名吗您正在检查$\u请求['term']
,然后尝试使用$\u请求['payer\u email']
-未设置!它们都应该使用术语
。您还应该使用预先准备好的语句-这也意味着您需要停止使用mysql\uuu
api.woow。非常感谢@NigelRen你救了我一天。如果您能检查我的代码中是否有其他需要修复的bug,我将不胜感激,因为我想在我的敏感项目上实现此功能。mysql\u connect
??该api多年前就被弃用了,PHP5.5也已经多年不受支持了。你需要升级你能解释一下你的期望吗?我已经编辑了我的代码,现在一切都很好,但现在我又面临一个问题。当我在输入框中写入电子邮件地址时,它成功地显示了与该电子邮件关联的用户名,但当我在输入框中写入类似于1的内容或电子邮件以外的任何内容并点击提交时,它显示了该表中所有可用的用户名。有人告诉我如何解决此问题吗?@Swayangjit我想用此代码提取与此电子邮件关联的数组。当我们提供确切的电子邮件信息时,不需要使用like,而且由于我们需要数组,也不需要循环,我希望我能正确地使用它。@Alex当您使用like时,它会显示任何与您的搜索类似的内容,您应该通过将搜索值与相关字段匹配来准确地搜索您想要的电子邮件