![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Mam problem z zapytaniem. Dajmy na to że mam tabelkę
id int(10) auto_increment niewazne char(90) cos int(10) default '0' przy czym id jest primary key i unique Teraz chcialbym dodać rekord na zasadzie:
Niestety taka konstrukcja nie chce działać. pole cos przyjmuje wartość domyślną '0' Oczywiście troche to uprościłem dla tego przykładu, pole cos nie zawsze przyjmuje wartosc pola id ale jest to sterowane przez php więc problem jest jedynie ze sformułowaniem dobrego zapytania. Jakieś pomysły? -------------------- Warsztat: Kubuntu, PhpStorm, Opera
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 229 Pomógł: 13 Dołączył: 31.05.2007 Ostrzeżenie: (10%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Tak to nie zadziała. Składnia jest zwykła pole=pole. W tym problem ze pola AUTO_INCREMENT są wyjątkiem
Cytat An expression expr can refer to any column that was set earlier in a value list. For example, you can do this because the value for col2 refers to col1, which has previously been assigned: INSERT INTO tbl_name (col1,col2) VALUES(15,col1*2); But the following is not legal, because the value for col1 refers to col2, which is assigned after col1: INSERT INTO tbl_name (col1,col2) VALUES(col2*2,15); One exception involves columns that contain AUTO_INCREMENT values. Because the AUTO_INCREMENT value is generated after other value assignments, any reference to an AUTO_INCREMENT column in the assignment returns a 0. A jak sobie z tym poradzić to już nie mam zielonego pojęcia. -------------------- Warsztat: Kubuntu, PhpStorm, Opera
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 441 Pomógł: 71 Dołączył: 3.09.2007 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
Musisz dodać rekord, poźniej odczytac ostatni id dodany do bazy i zrobic update na tym rekordzie podstawiajac id
Kod INSERT INTO tabelka (niewazne) VALUES ('test test test') $id = last_indert_id; UPDATE tabelka SET cos = '$id' WHERE id = '$id' przy czym za last_insert_id podstawiasz ostatni id dodany do bazy, który musisz wyciągnąć, np. jeśli używasz AdoDB Kod $id = $db->Insert_ID();
Ten post edytował zzeus 19.03.2008, 23:53:18 -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 07:23 |