gpt4 book ai didi

php - 用php动态生成mysql查询

转载 作者:行者123 更新时间:2023-11-29 08:28:30 25 4
gpt4 key购买 nike

我正在尝试学习如何根据用户选择填充数据的表单字段动态生成 mysql 查询。为了使学习过程尽可能简单,我使用了一个简单的表单,其中包含用户名字和姓氏的字段。基本(非动态)版本的代码如下:

<html>
<head>

<title>Untitled</title>

</head>
<body>

<form method="post" name="test" action="dynamic_search.php">
<input type="text" name="first_name">
<input type="text" name="last_name">
<input type="submit" value="Submit">

</form>

<?php

$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];

include "link.php";

$query = "SELECT * FROM members " .
"WHERE first_name = '$first_name' " .
"AND last_name = '$last_name' ";

$result = mysql_query($query)
or die(mysql_error());

$row = mysql_fetch_array($result);
$member_id = $row['member_id'];
$member_first_name = $row['first_name'];
$member_last_name = $row['last_name'];

echo $member_id;
echo $member_first_name;
echo $member_last_name;

?>
</body>
</html>

我需要做的是根据提交的数据生成查询。因此,如果用户仅输入名字,则查询将显示为:

$query = "SELECT * FROM members " .
"WHERE first_name = '$first_name' ";

但是如果用户同时输入名字和姓氏,查询将显示为:

$query = "SELECT * FROM members " .
"WHERE first_name = '$first_name' " .
"AND last_name = '$last_name' ";

任何帮助(或者如果有人能给我指出一个好的教程)将不胜感激!

谢谢!

最佳答案

您可以使用 PHP 检查输入并在必要时附加到查询。

$query = "SELECT * FROM members ";
$query .= "WHERE first_name = '$first_name' ";
if($last_name!="")
$query .="AND last_name = '$last_name' ";

记住使用 real_escape_string 转义字符串

$first_name = mysql_real_escape_string($_POST['first_name']);

如果您想检查名字:

$query = "SELECT * FROM members ";
if($first_name!=""){
$query .= "WHERE first_name = '$first_name' ";
if($last_name!="")
$query .="AND last_name = '$last_name' ";
}
else{
if($last_name!="")
$query .="WHERE last_name = '$last_name' ";
}

关于php - 用php动态生成mysql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17333241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com