获取 ComboBox 变量以存储在 MySQL 中
Posted
技术标签:
【中文标题】获取 ComboBox 变量以存储在 MySQL 中【英文标题】:Getting ComboBox variable to store in MySQL 【发布时间】:2011-09-26 08:55:33 【问题描述】:我有一个 html 页面,它从“hs_hr_employee”表中获取数据,并将信息放在网页上的表中。然后我有另一个表'rights',它从'hs_hr_employee'表的4列中获取信息并将它们存储在列中。除了这 4 个之外,“rights”表还有一个额外的列“Permissions”。
现在,我有一个包含 4 个选项的组合框。当我单击“保存”按钮时,我想将选择的值存储在组合框中,并将其保存在与用户相关的“权限”表中。
(每个用户旁边都有一个组合框)。
更新代码:
<?php
$connection = mysql_connect('localhost','admin','root');
if( isset($_POST['submit']) )
if( isset( $_POST['cb_permissions'] ) && is_array( $_POST['cb_permissions'] ))
foreach( $_POST['cb_permissions'] as $emp_number => $permission)
$sql = "UPDATE `your_permission_table` SET permission='".mysql_real_escape_string($permission)."' WHERE emp_number='".mysql_real_escape_string($emp_number)."'";
echo __LINE__.": sql: $sql\n";
mysql_query( $sql );
?>
<p style="text-align: center;">
<span style="font-size:36px;"><strong><span style="font-family: trebuchet ms,helvetica,sans-serif;"><span style="color: rgb(0, 128, 128);">File Database - Administration Panel</span></span></strong></span></p>
<p style="text-align: center;">
</p>
<head>
<style type="text/css">
table, td, th
border:1px solid #666;
font-style:Calibri;
th
background-color:#666;
color:white;
font-style:Calibri;
</style>
</head>
<form method="post" action="admin.php">
<?php
if (!$connection)
die('Could not connect: ' . mysql_error());
mysql_select_db('users', $connection);
$result = mysql_query("SELECT emp_number, employee_id, emp_lastname, emp_firstname FROM hs_hr_employee");
echo "<center>";
echo "<table >
<tr>
<th>Employee Number</th>
<th>Employee ID</th>
<th>Surname</th>
<th>Name</th>
<th>Permissions</th>
</tr>";
while($row = mysql_fetch_array($result))
echo "<tr>";
echo "<td>" . $row['emp_number'] . "</td>";
echo "<td>" . $row['employee_id'] . "</td>";
echo "<td>" . $row['emp_lastname'] . "</td>";
echo "<td>" . $row['emp_firstname'] . "</td>";
echo "<td> <select name='cb_permissions['".$row['emp_number']."'><option value='all'>All</option> <option value='remote'>Remote Gaming</option> <option value='landbased'>Landbased Gaming</option> <option value='general'>General Gaming</option> </select> </td>";
echo "</tr>" ;
echo "</table>";
echo "</center>";
echo mysql_query('INSERT into rights(Emp_num, ID, Name, Surname) SELECT emp_number, employee_id, emp_firstname, emp_lastname FROM hs_hr_employee');
$_POST['cb_permissions'];
mysql_close($connection);
?>
<p style="text-align: center;">
</p>
<p style="text-align: center;">
</p>
<p style="text-align: right;">
<input name="Save_Btn" type="button" value="Save" />
</p>
</form>
对我如何做有帮助吗?
截图以了解我在做什么的基本概念:
【问题讨论】:
【参考方案1】:首先,您应该将连接代码移到文档的最顶部:
$connection = mysql_connect('localhost','admin','root');
if (!$connection)
die('Could not connect: ' . mysql_error());
mysql_select_db('users', $connection);
接下来,您必须将表格包装在标签内:
<form method="post" action="target_url.php>
<table>
...
</table>
<input type="submit" name="submit" value="Save"/>
</form>
之后,您将在表单的某处存储employee_id
或emp_number
(取决于您将用于设置权限的表键):
while($row = mysql_fetch_array($result))
?>
<tr>
<td><?php echo $row['emp_number']; ?></td>
<td><?php echo $row['employee_id']; ?></td>
<td><?php echo $row['emp_lastname']; ?></td>
<td><?php echo $row['emp_firstname']; ?></td>
<td><select name="cb_permissions['<?php echo $row['emp_number']; ?>']">
<option value='all'>All</option>
<option value='remote'>Remote Gaming</option>
<option value='landbased'>Landbased Gaming</option>
<option value='general'>General Gaming</option>
</select></td>
</tr>
<?php
然后,在您的target_url.php
上,您必须执行以下操作:
如果
target_url.php
与您的表单相同,则下面的代码应放在文档的最顶部。
<?php
if( isset($_POST['submit']) )
if( isset( $_POST['cb_permissions'] ) && is_array( $_POST['cb_permissions'] ))
foreach( $_POST['cb_permissions'] as $emp_number => $permission)
$sql = "UPDATE `your_permission_table` SET permission='".mysql_real_escape_string($permission)."' WHERE emp_number='".mysql_real_escape_string($emp_number)."'";
echo __LINE__.": sql: $sql\n";
mysql_query( $sql );
?>
就是这样。
【讨论】:
我在第 68 行收到此错误,即:echo "<td> <select name='cb_permissions['<?php echo $row['emp_number']; ?>']'><option value='all'>All</option> <option value='remote'>Remote Gaming</option> <option value='landbased'>Landbased Gaming</option> <option value='general'>General Gaming</option> </select> </td>";
错误:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\admin.php on line 68
应该是:"我建议:
-
使用 require_once( "db_connect.php" )
使用 smarty 和 html_options 显示此下拉菜单。
1 次你会学到这个,接下来 - 使用。代码将开始整理... 也许对初学者来说很复杂。但这是正确的方式。
【讨论】:
以上是关于获取 ComboBox 变量以存储在 MySQL 中的主要内容,如果未能解决你的问题,请参考以下文章
如何释放直接作为数组获取并存储在变量中的 mysql 结果?
MFC 获取Combo Box控件 当前选定项的序号和文本内容
在 ColdFusion 中如何使用 in 变量获取 Oracle 存储过程以返回值?
如何将绑定连接到(Winform)ComboBox 控件以从绑定源获取/设置控件中的选择?
如何使用存储在变量中的值从 python mysql 数据库中获取特定行?
C# datagridview中添加了一列ComboBox列,这个ComboBox列下拉怎么获取到txt文档里面的数据?