繁体   English   中英

将select选项的值用于另一个select的sql where子句

[英]Using the value of a select option for the sql where clause of another select

在相同的范围内,如何从第一个选项框发送值,然后在第二个选项框查询的where子句中使用该值?

即我选择一个客户,然后第二个选择框将仅显示与该客户相关的选项。

理想情况下,它将是一个页面,可以流畅地工作

Client Selection:
<?php               //OPEN DROP DOWN BOX
include("../login/dbinfo.inc.php");
$comm=@mysql_connect(localhost,$username,$password);
$rs=@mysql_select_db($database) or die( "Unable to select database"); 
$sql=   "SELECT DISTINCT ClientCode, ClientName FROM tbl_client ORDER BY ClientCode";
$result = mysql_query($sql);
echo "<select name='ClientCode'>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['ClientCode'] ."'>" . $row['ClientName'] ."</option>;
}
echo "</select><br>";   //CLOSE DROP DOWN BOX   

?><br>

Vessel Selection:
<?php               //OPEN DROP DOWN BOX
$client = $_GET["$client"];//assign client code from first drop down to this value & use in query 'WHERE' clause

include("../login/dbinfo.inc.php");
$comm=@mysql_connect(localhost,$username,$password);
$rs=@mysql_select_db($database) or die( "Unable to select database"); 
$sql=   "SELECT VesselName  FROM tbl_import WHERE ClientCode='".$client."' ORDER BY VesselName";
$result = mysql_query($sql);
echo "<select name='VesselName'>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['VesselName'] ."'>" . $row['VesselName'] ."</option>";
}
echo "</select><br>";   //CLOSE DROP DOWN BOX                                   
?>

PHP是一种服务器端语言-所有查询都在浏览器接收之前执行。 如果您希望菜单的内容根据您的第一个选择(客户端)而变化,则您需要在选择客户端之后提交表单,或者在收到第一个菜单后使用javascript填充第二个菜单一个选择。

第二点-您正在使用mysql函数-PHP5中已弃用了这些功能,PHP7中已将其删除了; 研究至少要更新您的代码以使用mysqli函数。

第三点-您将用户数据直接插入查询中,这意味着您可以使用SQL注入打开网站。 通过mysqli或(更好) pdo函数使用准备好的语句和绑定参数来访问数据库,可以避免这种情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM