Вставить иерархическую нумерацию в MySql

Как разрешить пользователю вставлять иерархическую нумерацию, как показано ниже. На данный момент я использую текстовое поле, и пользователь будет вводить номер, такой как 1, 1.1, 2, 2.1, 2.1.1, И я могу только отображать данные четко, без отступа. Я использую PHP и MySql в качестве базы данных.

1 элемент списка
1.1 Элемент списка
1.1.1 Элемент списка
2 Элемент списка
2.1 Элемент списка
2.1.1 Элемент списка

Моя форма

<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

Решение

Если вы хотите, чтобы пользователи могли публиковать HTML-данные, а не обычный текст, вы можете использовать ckeditor или другие подобные инструменты. Эти инструменты преобразуют текстовое поле в поле, подобное этому, в stackoverflow.

Но имейте в виду, что для предотвращения XSS-атак вы должны проверить размещенные данные на стороне сервера.

Что еще более важно, то, как вы написали свой SQL-запрос, он очень уязвим для sql injection, использование prepared statements вместо. Например, если злонамеренный пользователь разместит эти данные, вы потеряете все данные в таблице tbl_detail:

$ _POST [ ‘t_no’] = «1»

$ _POST [‘t_deliverables’] = «1 ‘); удалить таблицу tbl_detail; -«

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]