Как вставить данные в базу данных ORACLE в порядке возрастания, используя PHP для цикла?

У меня есть эти HTML-формы, JQuery и PHP-код. До сих пор мне удавалось добавлять динамические поля в формы с помощью jQuery и добавлять данные в базу данных Oracle.

code.html

<div id="dynamicForm">
<button id="" class="add" name="1"> + ADD ITEM</button>
<table id="">
<thead>
<tr>
<th>TEXT 1</th>
<th>TEXT 2</th>
<th>TEXT 3</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="text" class="" name="name1[]" value="" placeholder=""></td>
<td><input type="text" class="" name="name1[]" value="" placeholder=""></td>
<td><input type="text" class="" name="name1[]" value="" placeholder=""></td>
</tr>
</tbody>
</table>
</div>
</div>

Code.js

<script type="text/javascript">
function formFunc(id, name)
{
switch(name)
{
case "1":
return '<div id="dynamicFormA"><button id="" class="add" name="1">+ ADD ITEM</button><table id=""><thead><tr><th>TEXT 1</th><th>TEXT 2</th><th>TEXT 3</th></tr></thead><tbody><tr><td><input type="text" class="" name="name1[]" value="" placeholder=""></td><td><input type="text" class="" name="name1[]" value="" placeholder=""></td><td><input type="text" class="" name="name1[]" value="" placeholder=""></td></tr></tbody></table></div></div>';
break;
}
}
$(document).ready(function(e){
$(".add").click(function(e){
e.preventDefault();
var id   = $(this).attr('id');
var name = $(this).attr('name');
$("#dynamicForm"+id).append(formFunc(id, name));
return false;
});
});
</script>

Мне удается добавить данные, используя для цикла, как показано ниже. У меня нет проблем с добавлением данных.

code.php

<?php

// Running no
$sqlNextSeq         = "SELECT SEQ_TABLE.nextval AS RUNNO FROM DUAL";
$stid2              = oci_parse($ociconn,$sqlNextSeq);
oci_execute($stid2);
$row                = oci_fetch_array($stid2, OCI_RETURN_NULLS);
$application_no     = $row["RUNNO"];
// Running no

// Data added
for ( $i=0; $i<count($_POST["name1"]); $i++ )
{
if($_POST['name1'][$i] != '' || $_POST['name2'][$i] != '' || $_POST['name3'][$i] != '' )
{
$sql  = "INSERT INTO TABLE (
ID,
TEXT1,
TEXT2,
TEXT3
)
VALUES(
'".$application_no."',
'".$_POST["name1"][$i]."',
'".$_POST["name2"][$i]."',
'".$_POST["name3"][$i]."'
)
";
$stid = oci_parse($ociconn,$sq);
oci_bind_by_name($stid);
$res  = oci_execute($stid);
if($res){ echo "Added<br/>";} else { echo "Not added<br/>";}
}
}
// Data added
?>

Но почему-то последовательность не в порядке, когда данные добавляются в базу данных.

Ожидается, что последовательность будет такой

ID              TEXT1           TEXT2           TEXT3
1               NAME1           ADDRESS1        CONTACT1
2               NAME2           ADDRESS2        CONTACT2
3               NAME3           ADDRESS3        CONTACT3

Но данные добавляются вот так в Oracle.

ID              TEXT1           TEXT2           TEXT3
3               NAME3           ADDRESS3        CONTACT3
1               NAME1           ADDRESS1        CONTACT1
2               NAME2           ADDRESS2        CONTACT2

Кстати, вот моя таблица, последовательность и триггер

последовательность

CREATE SEQUENCE  "DEV"."SEQ_TABLE"  MINVALUE 0 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 NOCACHE  NOORDER  NOCYCLE;

спусковой крючок

create or replace TRIGGER DEV.TRG_TABLE
BEFORE INSERT ON DEV.TABLE FOR EACH ROW
BEGIN
SELECT SEQ_TABLE.NEXTVAL INTO :NEW.ID FROM DUAL;
END;

Пожалуйста, помогите мне решить эту проблему. Заранее спасибо.

0

Решение

Ваша проблема, когда вы выбираете данные, выберите их с помощью заказа по идентификатору

select * from table order by ID asc
1

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector