MSSQL 和 Post 变量

MSSQL and Post Variables

我可能已经有一段时间没用这个了,我想我已经关注这个很久了。只是看不到我明显缺少的东西。

我正在尝试查询分配给已终止团队成员的记录,并在该查询中执行第二个查询,并在 select 菜单中显示已雇用的团队成员。允许将已终止团队成员的记录分配给已雇用的团队成员。

我正在使用将以下值传递给 POST 的表单:

            <?php
            //Loop Through all records in Select Query
            foreach ($TMReservesResult as $Record=>$Value){
        ?>  
            <?php //var_dump($Value); ?>
            <td><?php echo $Value['Company Name']; ?></td>
            <td><?php echo $Value['PhoneNumber']; ?></td>
            <td><?php echo $Value['State']; ?></td>

        <?php
            //STRIP TIME FROM DATE STRING
            $str = $Value['CallDate'];
            $res = $Value['Call Back Date'];
        ?>  

            <td><?php echo substr($str, 0, 11); ?></td>
            <td><?php echo substr($res, 0, 11); ?></td>
            <td>
            <center>
                    <div class="form-group">
                            <div class="col-lg-12 col-md-12 col-sm-12">
                                 <select class="form-control" name="UserName">
                                    <?php foreach($FindActiveTMNamesResults AS $TMNames=>$TMs) { ?>
                                        <option value="<?php echo $TMs['UserName']; ?>"><?php echo $TMs['UserName']; ?></option>
                                    <?php } ?> 
                                 </select>
                           </div>
                    </div>
           </center>                         
        </td>
        </tr>

        <input type="hidden" name="ContactID[]" value="<?php echo $Value["ContactID"]; ?>" />

        <?php } ?>

正在处理 POST 个值:

    <?php
        if (isset($_POST["submit"])){
            //update Employee Info
            $ContactID =  Escape_Function($_POST["ContactID"]);
            $UserName = Escape_Function(($_POST["UserName"]));

            foreach($ContactID as $id){

            //Update Query
            $UpdateEmployeeQuery = 'UPDATE [ACR Contact Management].[dbo].[Contacts] SET [LeadGenerator] = \'' . $UserName . '\' WHERE [ContactID] = \'' . $id . '\'';
                $UpdateEmployeeResult = $DB->query($UpdateEmployeeQuery);

    } 

 }

?>

以及

的结果
<?php 

var_dump($UpdateEmployeeQuery);

?>

string(113) "UPDATE [ACR Contact Management].[dbo].[Contacts] SET [LeadGenerator] = 'sbarnes' WHERE [ContactID] = '1362718628'" string(113) "UPDATE [ACR Contact Management].[dbo].[Contacts] SET [LeadGenerator] = 'sbarnes' WHERE [ContactID] = '1362703257'" string(113) "UPDATE [ACR Contact Management].[dbo].[Contacts] SET [LeadGenerator] = 'sbarnes' WHERE [ContactID] = '1364930874'" string(113) "UPDATE [ACR Contact Management].[dbo].[Contacts] SET [LeadGenerator] = 'sbarnes' WHERE [ContactID] = '1364930900'" string(113) "UPDATE [ACR Contact Management].[dbo].[Contacts] SET [LeadGenerator] = 'sbarnes' WHERE [ContactID] = '1364930976'"

看来我的 ID 循环工作正常,但是,循环(或缺少循环)仅抓取最后一条记录终止团队成员姓名。

我错过了什么?先谢谢你了。

改变

<select class="form-control" name="UserName">

<select class="form-control" name="UserName[]">

页面(您正在处理 POST 值的位置)

<?php
if (isset($_POST["submit"])) {
  for($i = 0; $i < sizeof($_POST["ContactID"]);$i++){

    $id = Escape_Function($_POST["ContactID"][$i]);
    $UserName = Escape_Function($_POST["UserName"][$i]);

    $UpdateEmployeeQuery = 'UPDATE [ACR Contact Management].[dbo].[Contacts] SET [LeadGenerator] = \'' . $UserName . '\' WHERE [ContactID] = \'' . $id . '\'';
    $UpdateEmployeeResult = $DB->query($UpdateEmployeeQuery);
  }
}?>

您将 ContactId 作为数组传递,但未将用户名作为数组类型传递。因此,它采用了最后一个下拉菜单中选择的选项。将其更改为数组类型并循环迭代每条记录。