编辑内爆字符串

时间:2015-12-16 09:17:45

标签: php foreach while-loop odbc explode

我有一个应用程序,我可以分配任务,如清洁浴室,洗车等。我可以分配一个任务,让我们说3到4人使用下面的代码

if (isset($_POST["btnassign"])){
$proj = $_REQUEST['projhid'];
$analyst = $_POST['analyst'];
$commaList = implode('| ', $analyst);
$queupass = "UPDATE projects set assignedto='$commaList', assignedby = '$uname' where projectname='$proj'";
$queresupass = odbc_exec($conn,$queupass);
$notifassign = "New Project Assignment";
$queprojgn = "INSERT INTO notification (notification,datetime,isread,createdby,createddate) 
                       values('$notifassign',GETDATE(),0,'$uname',GETDATE())";
$queprojresnot = odbc_exec($conn,$queprojgn);
echo  "<script type='text/javascript'>";
echo "window.close();";
echo "</script>";

上面的代码是分配部分,它可以很好地工作,因为我可以使用他们的ID将单个任务分配给工人数量。

现在,我还有一个锚标记,它将显示分配给该项目的工作人员,如下面的分析师说的那样

enter image description here

如果我点击该锚标记,我想获得为该任务分配的分析师列表,但请记住,使用其ID的已分配工作人员已经内爆了

1 | 2 | 3 | 4 | 5

我在下面有这个代码爆炸

$que = "SELECT assignedto FROM PROJECTS where projectname = '$projname'";
$queres = odbc_exec($conn,$que);
$res = odbc_result($queres, 1);
$analysts = explode("| ", $res);
echo $analysts[0]; // piece1
echo $analysts[1]; // piece2
echo $analysts[2]; // piece1
echo $analysts[3]; // piece2
echo $analysts[4]; // piece1
echo $analysts[5]; // piece2
echo $analysts[6]; // piece1
echo $analysts[7]; // piece2
die();

这最终会有效,但我需要的是将它展开到一个带有删除锚标记的表中,如下所示,任何帮助都将受到高度赞赏。

enter image description here

1 个答案:

答案 0 :(得分:0)

这可以通过以下方式实现:

  1. 从表格中选择assignedto

    $que = "SELECT assignedto FROM PROJECTS where projectname = '$projname'";

  2. 爆炸收到的字符串:

    $analysts = explode("| ", $res);

  3. 使用array_diff删除所需的工作人员:

    $new_analysts = array_diff($analysts, $remove_worker_id);

  4. 将新数组转换为管道分隔字符串:  $result = implode("| ", $new_analysts);

  5. 编辑:

    使用删除链接创建HTML表格

    $que = "SELECT assignedto FROM PROJECTS where projectname = '$projname'";
    $queres = odbc_exec($conn,$que);
    $res = odbc_result($queres, 1);
    $analysts_arr = explode("| ", $res);
    
    $analysts = implode(",", $analysts_arr);
    
    $que2 = "SELECT [user_id, first name, last name] FROM [user table] where [user_id] IN '$analysts'";
    $query = odbc_exec($conn,$que2);
    $result = odbc_result_all($query);
    
    foreach($result as $val){
       $user_id = $val['user_id'];
       $users[$user_id] = $val;
    }
    

    在此之后,您所要做的就是迭代$analysts_arr并创建表格所需的HTML。

    希望这有帮助。

    干杯!