DRaGoM88 Posted October 25, 2007 at 09:28 PM Report Share #142943 Posted October 25, 2007 at 09:28 PM 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. Link to comment Share on other sites More sharing options...
pedrotuga Posted October 25, 2007 at 11:28 PM Report Share #142962 Posted October 25, 2007 at 11:28 PM 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. Link to comment Share on other sites More sharing options...
scroll Posted October 26, 2007 at 09:49 AM Report Share #142974 Posted October 26, 2007 at 09:49 AM 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, Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now