Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Saudação à todos !
Estou me deparando com um problema que não encontrei solução nas pesquisas.
A tabela tem o ID como campo PK e auto incremento. Quando EXCLUO um registro, a próxima sequencia se ALOJA no espaço do registro excluido. Dessa forma, mostra na tela fora de sequencia (desordenado).
Ex: 1
2
3
4
5 se excluo o 3, a sequencia 6 passa a ocupar o lugar que era da 3
A solução que encontrei por ora é definir como ASCENDENTE direto na tabela, no banco.
Tem como otimizar em PHP, para que cada vez que o usuario EXCLUIR um registro fique ordenado ?
Agradeço pela ajuda.
Olá Andrey
Obrigado pelo seu retorno ... o seu exemplo mostra operações direto no BD, mas meu problema é quando o usuario EXCLUE um item via PHP e INCLUE outro. Ao visualizar na tela o resultado do SELECT, a sequencia nova (ultimo numero) está ocupando o lugar do registro excluido, sendo assim no select mesmo colocando ORDER BY ID ele mostra desordenado.
Porém, lá no BD quando clico ASCENDENTE ele arruma os registros.
O que preciso é um comando em PHP que faça isso dentro do PHP.
você pode me ajudar ?
Não tem como fazer isso direto no PHP, de qualquer forma, você vai ter que executar na SQL
Se toda vez que você fizer um select, você jogar um ORDER BY id ASC, oque você citou não ocorre.
>
Não tem como fazer isso direto no PHP, de qualquer forma, você vai ter que executar na SQL
OK. Agradeço pelas suas dicas, pois os comandos que você mostrou, alguns ainda não conhecia dessa forma. Valeu.
>
Se toda vez que você fizer um select, você jogar um ORDER BY id ASC, oque você citou não ocorre.
Obrigado William. Vou rever meus Selects.
C:\dev\mysql\bin>mysql -u root -p
Enter password: ******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 45
Server version: 5.1.41 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use exemplo;
Query OK, 0 rows affected (0.08 sec)Database changed
mysql> insert into num(
numero) values( 1 ), ( 2 ), ( 3 ), ( 4 ), ( 5 ), ( 6 ), ( 7 ), ( 8 ), ( 9 ), ( 10 ), ( 11 ), ( 12 );Query OK, 12 rows affected (0.02 sec)
Records: 12 Duplicates: 0 Warnings: 0
mysql> select * from num;
+----+--------+
| id | numero |
+----+--------+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
| 5 | 5 |
| 6 | 6 |
| 7 | 7 |
| 8 | 8 |
| 9 | 9 |
| 10 | 10 |
| 11 | 11 |
| 12 | 12 |
+----+--------+
12 rows in set (0.00 sec)
mysql> delete from num where id in( 3, 9, 11 );
Query OK, 3 rows affected (0.00 sec)
mysql> select * from num;
Query OK, 9 rows affected (0.18 sec) Records: 9 Duplicates: 0 Warnings: 0+----+--------+
| id | numero |
+----+--------+
| 1 | 1 |
| 2 | 2 |<--
| 4 | 4 |
| 5 | 5 |
| 6 | 6 |
| 7 | 7 |
| 8 | 8 |<--
| 10 | 10 |<--
| 12 | 12 |
+----+--------+
9 rows in set (0.02 sec)
Query OK, 0 rows affected (0.21 sec)
Records: 0 Duplicates: 0 Warnings: 0
Query OK, 9 rows affected (0.17 sec)
Records: 9 Duplicates: 0 Warnings: 0
mysql> select * from num;
+----+--------+
| id | numero |
+----+--------+
| 1 | 1 |
| 2 | 2 |
| 3 | 4 |
| 4 | 5 |
| 5 | 6 |
| 6 | 7 |
| 7 | 8 |
| 8 | 10 |
| 9 | 12 |
+----+--------+
9 rows in set (0.01 sec)
mysql>
;)