jak pobrac ostatnio wstawiona wartosc z pola id?

0

mam jaksa tam tabelke i w niej standardowe juz pole #id z AUTO_INC'em :)

#1
gdy wstawie rekord do bazy, jak potem sprawdzic, jaka wartosc dla tego rekordu jest w polu id? wiem, ze moge Max(id), bo niby ta wartosc bedzie najwieksza. no ale moze jest jaksi bardziej profesjonalny sposob?

#2
czemuy jak wstawie cos do bazy i to np dostanie id = 4, a potem jak usune ten rekord to nastepny wstawiony bedzie mial id = 5, a nie 4? ta sie to jakos zmienic? ew, jak przewidziec nastepna wartosc dla tego pola?

0

#1

kiedys dodawałem wskazówke do FAQ ale ja wcieło :[ (albo wyszukiwarka jest do d**y alo ktos ja wywalił)

ale odpowiedź to http://pl2.php.net/manual/en/function.mysql-insert-id.php

#2

bo tak to działa.. afaik nie da sie tego zmienić..

0

da sie, bo jest opcja w phpmyadminie, ktora potrafi ustawic nastepna wartosc.

0
Karolaq napisał(a)

da sie, bo jest opcja w phpmyadminie, ktora potrafi ustawic nastepna wartosc.

Bo myadmin prawdopodobnie sam to obsluguje. Jak nie chcesz miec dziur na koncu to select max(id) ... i wstawiasz sam odpowiednia wartosc.

//edit
nav:
auto increment dziala wlasnie tak jak opisal to Karolaq

pozdrawiam
johny

0
Karolaq napisał(a)

da sie, bo jest opcja w phpmyadminie, ktora potrafi ustawic nastepna wartosc.

no jest i nav ją podał, a phpMyAdmin pokazuje wszystkie zapytania jakie wykonuje to nie rozumiem gdzie kłopot

0
Karolaq napisał(a)

#2
czemuy jak wstawie cos do bazy i to np dostanie id = 4, a potem jak usune ten rekord to nastepny wstawiony bedzie mial id = 5, a nie 4?

Dlatego, że to pole jest unikatowe. wyobraź sobie taką sytuację:
W bazie masz zapisane jakie auto kupił klient. W bazie salonu samochodowego jest 10 klientów. Każdy kupił 1 z 10 fiatów (#1-#10). Po pewnym czasie przywieźli do salonu 10 merców. I teraz co by się stało, gdyby w bazie figurowały pod indeksami 1-10? [green]

0

jak dla mnie zly opis :P

10 klientow zamowilo po 1 merolku i za nie zaplacilo, przyszla dostawa i autka zostaly przypisane do danych transakcji, ale 5 z nich sie wycofalo razem z pieniazkami, nastepnie 10 innych zakupilo po jednym fiaciku ;)

0

Sprawdzasz tak:
$result = mysql_query('SHOW TABLE STATUS LIKE "nazwa_tabeli"');
$row = mysql_fetch_assoc($result);
$topic = $row["Auto_increment"];

1 użytkowników online, w tym zalogowanych: 0, gości: 1