• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

DRaGoM88

PHP - ODBC/SQL

3 mensagens neste tópico

Viva,

Eu sou novo no forum, chamo-me Daniel sou do Porto, tenho 19 anos e sou estudante de engenharia informática.

Comecei a estudar PHP por conta própria na sexta feira passada e estou a fazer 1 site como "treino".

O site inclui uma base de dados(odbc), com a seguinte tabela:

Produto{*idProduto, Descriçao, Foto]

idProduto é 1 campo de numeração automática, e eu precisava de com 1 comando de PHP ou SQL conseguir saber qual seria o ID do produto seguinte ao ultimo presente na tabela.

ex:

idProduto | Descrição | ...

      1            Carro

      2             Mota

Se eu fizer 1 INSERT agora, o ID do novo produto seria 3, ou seja, o ID do ultimo produto + 1, por outro lado, se eu eliminar o registo da mota e fizer 1 INSERT de seguida o ID vai ser à mesma 3, e neste caso o ultimo ID na tabela é o 1, 1+1!=3.

A dificuldade é que eu preciso do ID antes de adicionar o produto e nem sei se isto é possivel em odbc, mas já o fiz noutros tipos de BDs.

Obrigado.

PS. Falaram-me da existencia de algo tipo "GET_NEXT_ID" relacionado com a odbc mas não me souberam explicar nada ao certo de como usar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mmmm...

odbc é apenas uma API, as funcionalidades das bases de dados e a forma como elas se comportam depende do motor de base de dados que estiveres a usar, mesmo que uses odbc para comunicares com ele.

Dos sgbds que usei ( oracle, postgresql, mysql e sqlite ) quase todos mantêm um índice ou outro tipo de objecto onde é guardado o proximo id. Mas isso não precisas de te preocupar, a base de dados faz isso por ti. Se apagares o id=3, o proximo que inserires será na mesma o quatro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas,

tal como já tinha perguntado e respondido... (tá tornar-se um hábito)

O SQL trata disso utiliza o comando p.e. MAX()

http://portugalcode.com/index.php/topic,742.msg1941.html#msg1941

mas fica aqui o exemplo:

      $sqlid = "SELECT MAX(id) FROM marcas;";
      $resultid= mysql_query($sqlid) or die (mysql_error());
      $row_id = mysql_fetch_row($resultid);
      $id=$row_id[0];

abraço,

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora