gpt4 book ai didi

php - 如何根据用户在 PHP/HTML 表单中的输入在 MySQL Select 子句中包含特定的列元素?

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

我有一个简单的插入列表 (jQuery Mobile),其中包含多个项目,带有翻转开关、下拉列表、复选框和 slider 元素。

我已将此插入列表包装在 HTML 表单中。

<div data-role="fieldcontain">
<ul data-role="listview" data-inset="true">
<li data-role="list-divider"> Inhouse capabilities </li>
<li> <label for="flip-b">Project Manager</label>
<select name="slider" id="flip-b" data-role="slider">
<option value="no">No</option>
<option value="yes">Yes</option>
</select>
</li>
<li> <label for="flip-b">Site Supervisor</label>
<select name="slider" id="flip-b" data-role="slider">
<option value="no">No</option>
<option value="yes">Yes</option>
</select>
</li>
<li><label for="flip-b">Architect</label>
<select name="slider" id="flip-b" data-role="slider">
<option value="no">No</option>
<option value="yes">Yes</option>
</select>
</li>
<li><label for="flip-b">Builderworks</label>
<select name="slider" id="flip-b" data-role="slider">
<option value="no">No</option>
<option value="yes">Yes</option>
</select>
</li>
<li><label for="flip-b">Electrical</label>
<select name="slider" id="flip-b" data-role="slider">
<option value="no">No</option>
<option value="yes">Yes</option>
</select>
</li>
<li><label for="flip-b">Mechanical</label>
<select name="slider" id="flip-b" data-role="slider">
<option value="no">No</option>
<option value="yes">Yes</option>
</select>
</li>
<li><label for="flip-b">Hydraulics</label>
<select name="slider" id="flip-b" data-role="slider">
<option value="no">No</option>
<option value="yes">Yes</option>
</select>
</li>
<li><label for="flip-b">Joinery</label>
<select name="slider" id="flip-b" data-role="slider">
<option value="no">No</option>
<option value="yes">Yes</option>
</select>
</li>
<li>
<label for="select-choice-1" class="select">Main Location:</label>
<select name="select-choice-1" id="select-choice-1">
<option value="NSW">NSW</option>
<option value="ACT">ACT</option>
<option value="VIC">VIC</option>
<option value="SA">SA</option>
<option value="QLD">QLD</option>
<option value="NT">NT</option>
<option value="WA">WA</option>
<option value="TAS">TAS</option>
</select>
</li> <!-- Select Menus: Main Location-->

<li>
<div data-role="fieldcontain">
<fieldset data-role="controlgroup">
<legend>CBA Reference</legend>
<input type="checkbox" name="checkbox-1a" id="checkbox-1a" class="custom" />
<label for="checkbox-1a">Commercial</label>
<input type="checkbox" name="checkbox-2a" id="checkbox-2a" class="custom" />
<label for="checkbox-2a">Retail</label>
</fieldset>
</div>
</li>
</ul>
</div> <!-- End of Field Contain div tag -->
<a href="#additionalinfo" data-role="button" data-inline="true" data-iconpos="left" data-theme="b">Additional Info</a>
<a href="./search2.html" rel="external" data-ajax="false" data-role="button" data-inline="true" data-icon="search" data-iconpos="left" data-theme="e">Search</a>

`

我想知道如何在我的 SQL 查询中只包含用户选择的元素。

比方说,用户想要在昆士兰州找到电气 worker ,那么他将为电气和昆士兰州选择是作为主要位置,而其他他不会接触的项目。

现在,我如何才能在 select 子句中只包含这两个值。

例如,从 Main location='QLD' 的表中选择 Electrical,Main Location。

我使用 POST 方法收集用户输入。我在这个项目中使用 PHP、MySQL。

关于如何实现这一点有什么想法吗?

最佳答案

我没有阅读这些字段,所以你必须适应,但它更像是一个 php 问题而不是 mysql 问题。您必须构建一个标准列表,然后将它们整合在一起。

$criterias = array();

if(isset($_POST['option1']) && $_POST['option1'] == 'yes'){
$criterias[] = '(mytable.myfield1 = 1)';
}

if(isset($_POST['option2']) && $_POST['option2'] == 'yes'){
$criterias[] = '(mytable.myfield2 = 1)';
}

$sql = 'SELECT * FROM mytable'.(count($criterias) > 0 ? ' WHERE '.implode(' OR ', $criterias) : '').' ORDER BY mytable.sortkey';

这将帮助您构建您想要的任何类型的标准列表。请注意,我在内爆中使用了 OR,因为这些标准似乎具有包容性,因此您可以根据用户的选择根据他们的类型显示 worker 。但我不确定这是否正是您想要的。

另请注意,您可以将标准设置得更加复杂,并将两个信息组合在一起,例如:

if(isset($_POST['option2']) && $_POST['option2'] == 'yes'){
$criterias[] = '(mytable.myfield2 = 1 AND mytable.location = "'.$_POST['location'].'")
}

这样,您可以拥有与特定位置相关的多种类型,如果需要,甚至可以同时拥有不同位置。

祝你好运

关于php - 如何根据用户在 PHP/HTML 表单中的输入在 MySQL Select 子句中包含特定的列元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8926618/

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