更新多行(PHP+MySQL)
我正在开发一个lead管理系统——随着该系统数据库的增长,对更多批量功能的需求出现了——不幸的是,我被其中一个系统卡住了。数据库存储了许多不同的潜在客户-每个潜在客户都被分配给一个特定的客户;因此,数据库为每个lead存储lead id、名称、closer名称和其他信息。主潜在客户列表在每个潜在客户旁边显示一个复选框,该复选框将潜在客户id提交到一个数组中:更新多行(PHP+MySQL),php,mysql,Php,Mysql,我正在开发一个lead管理系统——随着该系统数据库的增长,对更多批量功能的需求出现了——不幸的是,我被其中一个系统卡住了。数据库存储了许多不同的潜在客户-每个潜在客户都被分配给一个特定的客户;因此,数据库为每个lead存储lead id、名称、closer名称和其他信息。主潜在客户列表在每个潜在客户旁边显示一个复选框,该复选框将潜在客户id提交到一个数组中: <input type=\"checkbox\" name=\"multipleassign[]\" value=\"$id\" /
<input type=\"checkbox\" name=\"multipleassign[]\" value=\"$id\" />
现在,所有这些都转到下一页:
<?php
include_once"config.php";
$id = $_POST['multipleassign'];
$id_sql = implode(",", $id);
$list = "'". implode("', '", $id) ."'";
$query = "SELECT * FROM promises WHERE id IN ($list) ";
$result = mysql_query($query);
$num = mysql_num_rows ($result);
if ($num > 0 ) {
$i=0;
while ($i < $num) {
$closer = mysql_result($result,$i,"business_name");
$businessname = mysql_result($result,$i,"closer");
echo "$closer - $businessname";
echo"<br>";
++$i; } } else { echo "The database is empty"; };
echo "<select name=\"closer\" id=\"closer\">";
$query2 = "SELECT * FROM members ";
$result2 = mysql_query($query2);
$num2 = mysql_num_rows ($result2);
if ($num2 > 0 ) {
$i2=0;
while ($i2 < $num2) {
$username = mysql_result($result2,$i2,"username");
$fullname = mysql_result($result2,$i2,"name");
echo "<option value=\"$fullname\">$fullname</option>";
++$i2; } } else { echo "The database is empty"; }
echo "</select>";
?>
我希望能够使用此页面上的表单从数据库中选择一个closer,然后将该closer分配给已选择的每个Lead。这里是我不知道如何继续的地方。在您选择lead并提交表单后,您的脚本应该在一个列表中显示它们,其中包含隐藏的输入,名称=leads[],值=lead的\u id,并且在每个lead旁边都有一个下拉框,其中将填充所有闭门器。 选择并发送第二个表单后,您的脚本将在Lead的ID数组中运行,并更新每个表单
你有主意了还是想要一些代码?事实上-我有。我不知道为什么我没早点想到。首先,我将原来的$list变量传递到新页面,然后:
<?php
include_once"config.php";
$ids = $_POST['list'];
$closer = $_POST['closer'];
$query = "UPDATE `promises` SET `closer` = '$closer' WHERE id IN ($ids) ";
mysql_query($query) or die ('Error updating closers' . mysql_error());
echo "A new closer ($closer) was assigned to the following accounts:";
$query = "SELECT * FROM promises WHERE id IN ($list) ";
$result = mysql_query($query);
$num = mysql_num_rows ($result);
if ($num > 0 ) {
$i=0;
while ($i < $num) {
$businessname = mysql_result($result,$i,"business_name");
echo "<li>$businessname";
++$i; } } else { echo "The database is empty"; };
?>
在此之前更新的页面:
$query = "SELECT * FROM promises WHERE id IN ($list) ";
$result = mysql_query($query);
$num = mysql_num_rows ($result);
if ($num > 0 ) {
$i=0;
while ($i < $num) {
$closer = mysql_result($result,$i,"business_name");
$businessname = mysql_result($result,$i,"closer");
echo "$closer - $businessname";
echo"<br>";
++$i; } } else { echo "The database is empty"; };
echo "<form name=\"form1\" method=\"post\" action=\"multiple_assign2.php\">";
echo "<input type=\"hidden\" name=\"list\" value=\"$list\" />";
echo "<select name=\"closer\" id=\"closer\">";
$query2 = "SELECT * FROM members ";
$result2 = mysql_query($query2);
$num2 = mysql_num_rows ($result2);
if ($num2 > 0 ) {
$i2=0;
while ($i2 < $num2) {
$username = mysql_result($result2,$i2,"username");
$fullname = mysql_result($result2,$i2,"name");
echo "<option value=\"$fullname\">$fullname</option>";
++$i2; } } else { echo "The database is empty"; }
echo "</select>";
echo "<input name=\"submit\" type=\"submit\" id=\"submit\" value=\"Reassign Selected Leads\">";
?>
对于可能感到困惑的人:潜在客户和与贷款更密切的关系,例如,我有一个新贷款可能性的潜在客户。我已经指派了我们最好的贷款收银员Mike来完成这项任务。我想我做对了:你可以在循环中创建更新,将它们存储在数组中,然后在foreach/for中运行它们。实际上,我希望有一个单独的下拉框。因此,在主潜在客户列表中,将选择必须更改收银员的潜在客户,在下一页,将从下拉列表中选择收银员,在下一页,将对所有选定的潜在客户执行收银员更改。