Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MYSQL] zapytanie insert - wartosc innego pola taka jak pola auto_increment
Hunterro
post
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 5.07.2007

Ostrzeżenie: (0%)
-----


przykladowo mam tabele ktora ma nastepujace kolumny:
id
sort
nazwa

Gdzie pole id ma ustawione auto_increment

robie sobie zapytanie
INSERT INTO tabela VALUES('', '', 'costam');

Pytanie brzmi:
Jak zrobic zeby do kolumny sort wcisnieta zostala taka sama wartosc jak do id gdzie jest auto_increment.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
Lombi
post
Post #2





Grupa: Zarejestrowani
Postów: 237
Pomógł: 11
Dołączył: 12.04.2006

Ostrzeżenie: (0%)
-----


Chyba skorzystał bym z funkcji MAX() do sprawdzenia numeru id w tabeli i wstawil do sort wartość o jeden większą.
Go to the top of the page
+Quote Post
acztery
post
Post #3





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

Ostrzeżenie: (0%)
-----


zaintersuj się mysql_insert_id
Go to the top of the page
+Quote Post
Hunterro
post
Post #4





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 5.07.2007

Ostrzeżenie: (0%)
-----


niby to by zadzialalo ale jesli rekord o ostatnim id zostal usuniety a wczesniej w wyniku sortowania inny rekord uzuskal taka wartosc sort?

co do mysql_insert_id.
w tym momencie tak to zrobilem ale wtedy musze wykonywac dwa zapytania a chcialbym zrobic to w jednym (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował Hunterro 15.01.2009, 12:35:00
Go to the top of the page
+Quote Post
Lombi
post
Post #5





Grupa: Zarejestrowani
Postów: 237
Pomógł: 11
Dołączył: 12.04.2006

Ostrzeżenie: (0%)
-----


Nie wiedziałem że bedziesz to potem jeszcze obrabiał (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Więc zrób jak radzi acztery. Tak czy tak zapytanie i linijka kody więcej (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Lombi 15.01.2009, 12:36:24
Go to the top of the page
+Quote Post
acztery
post
Post #6





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

Ostrzeżenie: (0%)
-----


po ci się bawić tak z jakims max??

a co jak 2 osoby w tym samym czacie to zrobią to co . Do tego jest jedna funkcja to co napisałem powinno załatwić sprawę albo nadaj polu gdzie bedziesz dawał ta wartosc typu auto_increment. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
nevt
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

Ostrzeżenie: (0%)
-----


a jaki jest w ogóle sens przepisywania wartości id do pola sort (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) nie możesz sobie sortować po id (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) po co ci w jednej tabeli dwie kolumny przechowujące identyczne dane (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
Hunterro
post
Post #8





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 5.07.2007

Ostrzeżenie: (0%)
-----


dlatemu ze nazwa pliku powiazanego z rekordem ma w sobie jego id.
wiec przy sortowaniu niechce zmieniac nazwy pliku dlatego oddzielna wartosc do sortowania.
pozatym jesli np zapodalbym gdzies albo komus link np do jakiegos artykulu, a pozniej posortowalbym sobie inaczej to link tez nie dzialalby prawidlowo.
a sama wartosc sort po dodaniu rekordu chce zeby miala wartosc taka jak id zeby domyslnie pojawial sie on na koncu listy.
Go to the top of the page
+Quote Post
erix
post
Post #9





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




http://forum.php.pl/index.php?showtopic=10...st&p=548436
Go to the top of the page
+Quote Post
Hunterro
post
Post #10





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 5.07.2007

Ostrzeżenie: (0%)
-----


Taki sposob juz byl podawany ale on nie zawsze bedzie prawidlowo dzialal.
Wyslanie na przykladzie. mamy nastepujace rekordy w bazie:

id sort
1 1
2 2

Zmieniamy kolejnosc wyswietlania przez zmiane wartosci w kolumnie sort

id sort
1 2
2 1

Okazuje sie ze jednak rekord o id 2 jest zbedny wiec go wywalamy

id sort
1 2

Dodajemy nowy rekord i robiac to w wlasnie w sposob podany z tego linka otrzymujemy w bazie:

id sort
1 2
3 2

I sortowanie spartolone (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

EDIT:

Ale w sumie wlasnie sobie pomyslalem ze jakby przy wstawianiu nowego rekordu wstawic w sort MAX(sort) +1 to by bylo dobrze (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Bo niewiem czemu uparlem sie na to zeby to byla wartosc taka jak id jesli chodzi tylko o to zeby nowo dodany rekord wyswietlal sie na liscie jako ostatni ;]

Ten post edytował Hunterro 15.01.2009, 18:05:37
Go to the top of the page
+Quote Post
erix
post
Post #11





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Ale w sumie wlasnie sobie pomyslalem ze jakby przy wstawianiu nowego rekordu wstawic w sort MAX(sort) +1 to by bylo dobrze

Przecież napisałem w tamtym poście, co zrobić, aby było ok. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Cytat
Taki sposob juz byl podawany ale on nie zawsze bedzie prawidlowo dzialal.

Owszem, w przypadku kilku jednoczesnych zapisów tak. Ale istnieje jeszcze coś takiego jak LOCK TABLES i transakcje. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował erix 15.01.2009, 18:07:21
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 06:30