gpt4 book ai didi

php - 具有多个 WHERE 的 MySQL 查询,有些可能为空

转载 作者:搜寻专家 更新时间:2023-10-30 20:12:36 24 4
gpt4 key购买 nike

我正在尝试创建一个查询,用户可以在其中输入:名字、姓氏、昵称、年级和性别。但是,其中一些字段可能为空。

我知道如何创建一个查询来检查所有这些。但是,如果没有给出,我怎样才能让它不会查询某些东西。例如,用户可能希望按姓氏和性别进行搜索,而不是其他。

我该怎么做呢?非常感谢您的帮助!

@Ibu,这是我目前所拥有的:

// Now we need to query the database for these terms
$sql_query = "SELECT * FROM `students` WHERE `first_name` = '" . $first_name . "' AND `last_name` = '" . $last_name . "' AND `nick_name` = '" . $nick_name . "' AND `grade` = '" . $grade . "' AND `gender` = '" . $gender . "'";
$result = mysql_query($sql_query);

// Let's check to make sure there is an actual result
$num_rows = mysql_num_rows($result);

if($num_rows < 1) {
echo 'No student was found using that criteria.';
}

if($num_rows >= 1) {
echo '<p>' . $num_rows . ' result(s) found. Below are the results:</p>';
echo '<br />';
}

while($row = mysql_fetch_array($result)) {
echo '
<table border="1" width="400">
<tr>
<td colspan="2" align="center">Student Profile - ' . $row['last_name'] . ', ' . $row['first_name'] . '</td>
</tr>
<tr>
<td>First Name: </td>
<td>' . $row['first_name'] . '</td>
</tr>
<tr>
<td>Last Name: </td>
<td>' . $row['last_name'] . '</td>
</tr>
<tr>
<td>Nick Name: </td>
<td>' . $row['nick_name'] . '</td>
</tr>
<tr>
<td>Grade: </td>
<td>' . $row['grade'] . '</td>
</tr>
<tr>
<td>Gender: </td>
<td>' . $row['gender'] . '</td>
</tr>
</table> <br /><br />';

}

最佳答案

Erland Sommarskog 是这个问题的实际来源:
http://www.sommarskog.se/dyn-search-2005.html#conclusion

我会以如下格式编写每个参数化的 AND:

...AND ((@Param IS NULL)  OR (@Param = your_column))

关于php - 具有多个 WHERE 的 MySQL 查询,有些可能为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5970864/

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