将分层编号插入MySql

时间:2014-09-17 01:47:37

标签: php mysql hierarchical-data

如何允许用户插入如下所示的分层编号。至于现在,我正在使用文本框,用户将输入1, 1.1, 2, 2.1, 2.1.1等数字。我只能简单地显示数据,没有缩进。我使用PHP和MySql作为数据库。

 1 List item
   1.1 List item
     1.1.1 List item
 2 List item
   2.1 List item
     2.1.1 List item

我的表格。

<form action="basicview.php?id=<?php echo $p_aid; ?>&&do=insert" method="post">             
                <div style="padding-bottom:5px">
                    <div style="float:left;width:5%;padding-top:7px"><label style="color:blue">No</label></div>
                    <div style="float:left;"><input class="text-input" type="text" name="t_no" size="10" value="" /></div>
                    <div class="clear"></div>
                </div>
                <div style="padding-bottom:5px">
                    <div style="float:left;width:15%;padding-top:7px"><label style="color:blue">Deliverables</label></div>
                    <div style="float:left;"><textarea class="text-input textarea" name="t_deliverables" cols="70" rows="2"></textarea></div>
                    <div class="clear"></div>
                </div>

PHP。

if ($_GET['do'] == 'insert')
{   
    $t_no           = $_POST['t_no'];
    $t_deliverables = $_POST['t_deliverables']; 

    $sql = "INSERT INTO tbl_detail (p_aid,t_no,t_deliverables) ";
    $sql .= "VALUES ($p_aid,'$t_no','$t_deliverables')";
    mysql_query($sql);

    redirect("basicview.php?id=$p_aid&type=success&msg=new+row+added");
}

1 个答案:

答案 0 :(得分:0)

如果您希望用户能够发布html数据而不是纯文本,则可以使用ckeditor或其他类似工具。这些工具将textarea转换为stackoverflow中的此类框。

但请记住,为了防止XSS攻击,您必须验证服务器端的发布数据。

更重要的是,您编写sql查询的方式非常容易受到sql injection的攻击。请改用prepared statements。例如,如果恶意用户发布这些数据,则会丢失tbl_detail表中的所有数据:

$ _ POST [ 'T_NR中'] = “1”

$ _ POST ['t_deliverables'] =“1'); drop table tbl_detail; - ”