是否可以将表单数据发布到SELECT查询中,以便查询可以根据输入的内容查找结果?
例如,我有三个字段:
营销协议编号: _ __ _ __
公司ID: _ __ _ __ _ _
开始日期: _ __ _ __ _ _
说我不知道营销协议编号是什么,我想通过公司ID而不是营销协议编号找到。或者,如果我只是想在特定日期(或日期范围)找到促销活动,我只需输入开始日期而不在其他两个中输入任何内容。
目前我的查询是:
$query = sprintf("SELECT * FROM Items, Promotions, Vendor_Prices, Vendors, Sales_Accounts
WHERE Items.itemid = Promotions.itemid AND
Vendors.vendorid = Promotions.vendorid AND
Vendor_Prices.vendorid = Vendors.vendorid AND
Vendor_Prices.itemid = Items.itemid AND
promoid = '$man'");
其中$ man是营销协议编号的发布信息。对不起,如果这有点令人困惑,我可以在必要时澄清。
编辑:
我想到了。我刚刚在WHERE字段中将我的查询更改为OR和LIKE,而不仅仅是“=”。
promoid LIKE '$man' OR Vendors.vendorid LIKE '$cid' OR startdate = '$pstart'
答案 0 :(得分:0)
我可能误解了你的问题。如果你想根据一个人输入表单中的信息以及他们不输入什么信息来运行查询,你可以使用一些if逻辑。
if ($_POST["man"] != "") {
$query += sprintf(" AND promoId = '$man'", $_POST["man"]);
}
if ($_POST["companyId"] != "") {
$query += sprintf(" AND companyId = '$companyId'", $_POST["companyId"]);
}
if ($_POST["startDate"] != "") {
$query += sprintf(" AND startDate= '$startDate'", $_POST["startDate"]);
}