如何添加,编辑和删除数据库的逗号分隔值。

时间:2015-02-21 06:45:20

标签: php mysql database

我创建了一个名为role的表,字段就像(roleid,role,prohibitedprocess,prohibitedports)这里的roleid是唯一的。并且我有一个逗号分隔的值" prohibitedprocess" field(例如:prohibitedprocess ---> skype,teamviwer,notepad)。

问题是如何添加,编辑和删除allowedprocess的逗号分隔值。是否可能?

我从数据库中获取代码.code是

      <?php 
                $sql = "SELECT roleid, prohibitedprocess, prohibitedports FROM role WHERE role='Basic'";
                $option='';
                $result = mysql_query($sql);
                while($row = mysql_fetch_assoc($result))
                {
                    $pro_proc = $row['prohibitedprocess'];
                    $lst = explode(",",$pro_proc);
                                        //Print in Option Box
                    foreach($lst as $exp)
                    {?> 
                        <tr>            
                        <td><?php echo $exp;?></td>
                        <td><a href="edit_form.php?id=$row[roleid]">Edit</a></td>
                        <td><a href="del_form.php?id=$row[roleid]">Delete</a></td></tr>
            <?php   
                    }
                }                       
                ?>

Design

如何做到这一点请帮助我

3 个答案:

答案 0 :(得分:1)

一种方法是检索输入元素中的所有“关键字”并将其编辑为句子。但是,对于您想要执行的操作,您可能希望添加一个名为prohibitedprocess的新表,并将roleid用作外键。然后根据roleid从该表中检索。 例如:SELECT item FROM prohibitedprocess p, role r WHERE p.roleid = r.roleid

答案 1 :(得分:1)

为该关系制作另一个表可能更好,然后您可以正常编辑它。否则,您可以使用逗号分隔列表并在javascript中执行某些操作。

var commaSeparatedList = <?php echo $commaSeparatedList;?>
var realData = commaSeparatedList.split(',');
// when the user adds something you can add to the array or delete 
// from the array
var newCommaList = readData.join([separator = ',']);
// some kind of get/post request that sends the new comma list

<?php
    $newList = GET_REQUEST_PARAMS["newCommaList"];
    // sql update query that updates the comma list
?>

我有一段时间没有使用过PHP,所以我知道GET_REQUEST_PARAMS不是一件事,但我相信你知道如何获取参数。

或者,如果没有javascript,您可以使用回复所有违禁事件名称的表单

<?php 
    $newList = ""
    //foreach through the get params which contain the names
    foreach()
    {
        $newList += getParam + ",";
    }
    // some code to remove that last comma
    // sql update 
?>

答案 2 :(得分:1)

您可以编辑整个字符串。 。

我的意思是只使用str_replace函数

例如

$string = "skype,teamviwer,notepad";

$old_value = "skype";

$new_value = "facebook";

$new_string = str_replace($old_value,$new_value,$string);

然后只需将此新字符串更新为数据库表。 。