我有 php 页面,它从用户那里获取 startdate、enddate、hotelname、city、price 和 type 的值。现在我需要检查我的数据库中只有用户输入的值。那可能吗?对于留空的任何条目,不应用相应的条件(例如,如果城市留空,则考虑所有城市)。就像如果用户只输入酒店名称,那么我需要从 hname = 酒店名称的酒店中选择 *。
如果我继续检查所有可能的条件集,那么可能会有 63 种组合!那么有什么出路吗?请帮忙!谢谢。
您应该编写一个循环输入变量并查找有效列名的方法,而不是单独处理每个输入。然后确保在 SQL(mysqli、PDO)中使用准备好的语句。
要检查特定的输入变量,您应该执行
if (isset($_POST['var']) && !empty($_POST['var']))
如果每个字段都需要特别注意或单独的数据库表,那么您很可能需要单独处理每个字段。
这最终取决于您的需求。但根据我的经验,总有一种方法可以以编程方式进行。
当您在代码中构建查询时,仅包含其中具有值的项目。
您正在动态构建查询,不是吗?