Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/sql]Autowypełnianie tabeli
wert1
post
Post #1





Grupa: Zarejestrowani
Postów: 175
Pomógł: 2
Dołączył: 22.03.2007
Skąd: localhost

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


Witajcie !

Mam sobie tabelkę a w niej userów i chciałbym im przypisać numer (ID)
Mam kolumne ID ale jak to zrobić ze przy dodawaniu urzytkownika skrypt przypisał mu kolejny (!) numer ID

Pozdrawiam Wert

Ten post edytował wert1 17.03.2008, 16:19:29


--------------------
"Homo sum, humani nihil a me alienum puto."
"Necessitas ultimum et maximum telum est."
"Ventem seminabunt et turbinem metent."
"Gallia est omnis divisa in partes tres..."
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
sniezny_wilk
post
Post #2





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


We właściwościach pola ustaw "auto_increment".


--------------------
Go to the top of the page
+Quote Post
wert1
post
Post #3





Grupa: Zarejestrowani
Postów: 175
Pomógł: 2
Dołączył: 22.03.2007
Skąd: localhost

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


tez o tym myslałem ale wolę zeby to było w php tongue.gif


Ps: Zresztą wywala mi bład :
  1. Błąd
  2.  
  3. zapytanie SQL:
  4.  
  5. ALTER TABLE `oceny` CHANGE `id` `id` VARCHAR( 4 ) CHARACTER SET latin2 COLLATE latin2_general_ci NOT NULL AUTO_INCREMENT
  6.  
  7. MySQL zwrócił komunikat: Dokumentacja
  8. #1063 - Incorrect column specifier for column 'id'


--------------------
"Homo sum, humani nihil a me alienum puto."
"Necessitas ultimum et maximum telum est."
"Ventem seminabunt et turbinem metent."
"Gallia est omnis divisa in partes tres..."
Go to the top of the page
+Quote Post
nowotny
post
Post #4





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


No to nie "wól" tylko rób tak jak jest poprawnie... pole ID musi być typu liczbowego, nie łańcuchowego...
Go to the top of the page
+Quote Post
skowron-line
post
Post #5





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


[sql]ALTER TABLE `oceny` CHANGE `id` `id` INT( 4 ) CHARACTER SET latin2 COLLATE latin2_general_ci NOT NULL AUTO_INCREMENT[sql]


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
Cezar708
post
Post #6





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


Cytat(nowotny @ 17.03.2008, 16:26:21 ) *
No to nie "wól" tylko rób tak jak jest poprawnie... pole ID musi być typu liczbowego, nie łańcuchowego...



Fakt faktem integer jest najszybszy, ale to nie znaczy że musi być zawsze używany. Jeśli tabela jest mała z powodzeniem można wykorzystać VARCHAR jako klucz prywatny. Czasem bywa tak, że klucz prywatny w postaci VARCHAR jest bardzo wygodny (na przykład międzynarodowe kody lotnisk).
Go to the top of the page
+Quote Post
wert1
post
Post #7





Grupa: Zarejestrowani
Postów: 175
Pomógł: 2
Dołączył: 22.03.2007
Skąd: localhost

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


hmm dadal blad
  1. Błąd
  2.  
  3. zapytanie SQL:
  4.  
  5. ALTER TABLE `oceny` CHANGE `id` `id` INT( 4 ) CHARACTER SET latin2 COLLATE latin2_general_ci NOT NULL AUTO_INCREMENT
  6.  
  7. MySQL zwrócił komunikat: Dokumentacja
  8. #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CHARACTER SET latin2 COLLATE latin2_general_ci NOT NULL AUTO_INCREMENT' at line 1


zreszta ja musze miec w dwóch tabelach takie samo id


--------------------
"Homo sum, humani nihil a me alienum puto."
"Necessitas ultimum et maximum telum est."
"Ventem seminabunt et turbinem metent."
"Gallia est omnis divisa in partes tres..."
Go to the top of the page
+Quote Post
skowron-line
post
Post #8





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


mysle ze zamiast CHANGE lepiej daj MODIFY


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
nowotny
post
Post #9





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


Cytat(Cezar708 @ 17.03.2008, 16:31:28 ) *
Fakt faktem integer jest najszybszy, ale to nie znaczy że musi być zawsze używany.

Cytat(http://dev.mysql.com/doc/refman/5.0/en/create-table.html)
Some attributes do not apply to all data types. AUTO_INCREMENT applies only to integer types. DEFAULT does not apply to the BLOB or TEXT types.


Cytat(Cezar708 @ 17.03.2008, 16:31:28 ) *
Jeśli tabela jest mała z powodzeniem można wykorzystać VARCHAR jako klucz prywatny. Czasem bywa tak, że klucz prywatny w postaci VARCHAR jest bardzo wygodny (na przykład międzynarodowe kody lotnisk).

Ale my mówimy o auto_integer a nie kluczach prywatnych...

Fakt, może źle zastosowałem skrót myślowy... powinno być:
pole z atrybutem auto_increment musi być typu liczbowego, nie łańcuchowego...
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 06:56