![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 19 Dołączył: 24.12.2003 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam pewien mały problem. Otóż mam tabelę stany o strukturze jak poniżej. Baza mysql 5 ID IDPRODUKT IDROZMIAR STAN 1 5 1 10 2 5 2 5 3 6 1 2 4 6 2 3 Teraz dodaję nowy rozmiar i dodaję rekordy dla każdego produktu z id nowego rozmiaru ze stanem zero czyli ID IDPRODUKT IDROZMIAR STAN 5 5 3 0 6 6 3 0 Generalnie nie jest to jakiś problem pobrać id i potem dla nich stworzyć nowe rekordy ale chciałbym to zrobić bez pośredniego operowania w php a uzyskać wynik w jednym zapytaniu czyli coś w stylu INSERT into stany VALUES('',idprodukt,nowy_idrozmiar,0) SELECT idprodukt FROM stany group BY idprodukt. Oczywiście to zapytanie jest błędne ale chodziło mi o nakreślenie tego czego oczekuję. Poza tym nie wiem czy w jednym zapytaniu gdzie jest INSERT i SELECT operujący na tej samej tabeli możliwe jest takie rozwiązanie Jeśli ktoś miałby jakieś sugestie byłbym wdzięczny za info Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 781 Pomógł: 256 Dołączył: 29.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zobacz może tak
Albo
Ten post edytował kefirek 10.01.2009, 12:23:23 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 19 Dołączył: 24.12.2003 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
Zobacz może tak
Albo
Nie no coś takiego nie ma racji bytu. Po pierwsze w tym drugim zapytaniu nazwa kolumny rozmiaru to będzie idrozmiar a nie nowy_idrozmiar. Nowy_idrozmiar to tylko wartość, natomiast w VALUES nie odpalisz podzapytania, a w apostrofach to będzie ttaktowane jako ciąg a nie zapytanie. Poza tym w taki sposób to by select zwrócił wszystkie idki produktu dla jednego wiersza |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 158 Pomógł: 43 Dołączył: 9.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Po zapisaniu nowego rozmiaru odczytujesz jego identyfikator ($id_rozmiar = ...)
Następnie wykonujesz zapytanie, które doda odpowiednie rekordy dla każdego produktu (zakładam, że tabela z danymi o produktach nazywa się `produkty`)
Ten post edytował BaN 10.01.2009, 13:03:05 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 19 Dołączył: 24.12.2003 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
Po zapisaniu nowego rozmiaru odczytujesz jego identyfikator ($id_rozmiar = ...) Następnie wykonujesz zapytanie, które doda odpowiednie rekordy dla każdego produktu (zakładam, że tabela z danymi o produktach nazywa się `produkty`)
No w sumie żeby ominąć problem z wykorzystanie tej samej tabeli to fakt moge pobrać idiki produktów z tabeli produkty i w sumie wtedy to będzie działać choć działające zapytanie będzie wyglądać tak
Z tym że bardziej chodziło mi oto czy można operując na tej samej tabeli dokonać takiego zapytania. Tak z ciekawości |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Z tym że bardziej chodziło mi oto czy można operując na tej samej tabeli dokonać takiego zapytania. Tak z ciekawości Nie, ponieważ podczas wykonywania instrukcji INSERT tabela, na której operujesz, jest blokowana. Z tego powodu nie jest możliwe wykonanie SELECT dopóki INSERT nie zakończy działania (nie zwolni blokady). Czyli nie da się budować podzapytań w przedstawiony przez Ciebie na początku sposób (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował sowiq 10.01.2009, 13:27:46 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 19 Dołączył: 24.12.2003 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
Czyli nie da się budować podzapytań w przedstawiony przez Ciebie na początku sposób (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) No i na taką konstruktywną odpowiedź liczyłem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 15:50 |