Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]MySQL zwraca mi błąd przy insert, gdy w składni używam SELECT
Forum PHP.pl > Forum > Przedszkole
yaotzin
  1. INSERT INTO menu_tab(name, anchor, id_cat, id_art, ordering, is_cat, tab_art, blog_art, sel_art, data_dod) VALUES('nowa kat','nowa kat', 8,0, SELECT MAX(ordering)+1 AS maximum FROM menu_tab,1,1,0,0,'2007<span style='color:orange'>-10-1 16:52:22')


Mam takie oto zapytanie jak powyżej i za każdym razem MySQL zwraca mi błąd w
  1. SELECT MAX(ordering)+1 AS maximum FROM menu_tab,
tym miejscu... Wiem że taka kombinacja powinna działać w MSSQL (nie daje głowy), ale mam problem z zastosowaniem jej w MySQL.

Proszę o pomoc co robię źle
qqrq
Jaki błąd ci wywala? Może masz jakąś starą wersję MySQL-a (w starych nie ma podzapytań)? Może spróbuj podzapytanie dać w nawias?
yaotzin
Cytat(qqrq @ 1.10.2007, 17:26:15 ) *
Jaki błąd ci wywala? Może masz jakąś starą wersję MySQL-a (w starych nie ma podzapytań)? Może spróbuj podzapytanie dać w nawias?


Coś takiego

INSERT INTO menu_tab( name, anchor, id_cat, id_art, ordering, is_cat, tab_art, blog_art, sel_art, data_dod )
VALUES (
'nowa kat', 'nowa kat', 8, 0,
SELECT MAX( ordering ) +1 AS maximum, 1, 1, 0, 0, '2007-10-1 16:52:22'
)

MySQL zwrócił komunikat: Dokumentacja
#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 'SELECT MAX(ordering)+1 AS maximum,1,1,0,0,'2007-10-1 16:52:22')' at line 1


dawałem w nawias i też nic
nevt
..., SELECT (MAX(ordering) + 1) AS maximum FROM menu_tab, ....

pozdrawiam.
yaotzin
sorki wprowadziłem błąd w drugim wysłanym

INSERT INTO menu_tab( name, anchor, id_cat, id_art, ordering, is_cat, tab_art, blog_art, sel_art, data_dod )
VALUES (
'nowa kat', 'nowa kat', 8, 0,
SELECT MAX( ordering ) +1
FROM menu_tab, 1, 1, 0, 0, '2007-10-1 16:52:22'
)

MySQL zwrócił komunikat: Dokumentacja
#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 'SELECT MAX(ordering)+1 FROM menu_tab,1,1,0,0,'2007-10-1 16:52:22')' at line 1


wygląda to tak a MySQL mam 5.23
tomeksobczak
sprobuj dac subselecta w ()
yaotzin
Cytat(tomeksobczak @ 1.10.2007, 17:52:08 ) *
sprobuj dac subselecta w ()


dawałem i to samo
nevt
Już się poprawiam, nie tak używasz SELECT w INSERT:
  1. INSERT INTO menu_tab( name, anchor, id_cat, id_art, ordering, is_cat, tab_art, blog_art, sel_art, data_dod )
  2. SELECT 'nowa kat', 'nowa kat', 8, 0, MAX(ordering)+1, 1, 1, 0, 0, '2007-10-1 16:52:22' FROM menu_tab;[b]
  3. [/b]


Pozdrawiam.
yaotzin
Cytat(nevt @ 1.10.2007, 17:59:54 ) *
Już się poprawiam, nie tak używasz SELECT w INSERT:
  1. INSERT INTO menu_tab( name, anchor, id_cat, id_art, ordering, is_cat, tab_art, blog_art, sel_art, data_dod )
  2. SELECT 'nowa kat', 'nowa kat', 8, 0, MAX(ordering)+1, 1, 1, 0, 0, '2007-10-1 16:52:22' FROM menu_tab;[b]
  3. [/b]


Pozdrawiam.


To też nie to wydaje mi się że po prostu nie mogę wykonać selecta na tabeli do której dodaję dane... w tym przypadku na menu_tab. musiałbym widocznie dorzucić drugą tabelę która by decydowała o ordering i wten sposób to realizować. chyba :/ no cóż zastosuję SELECT a następnie insert a chciałem tego uniknąć :/
tomeksobczak
to u mnie zadzialalo

  1. INSERT INTO menu_tab( name, anchor, id_cat, id_art, ordering, is_cat, tab_art, blog_art, sel_art, data_dod )
  2. VALUES('nowa kat','nowa kat',8,0, (SELECT * FROM (SELECT MAX( ordering)+1 FROM menu_tab) AS trick), 1, 1, 0, 0, '2007-10-1 16:52:22' );
yaotzin
Cytat(tomeksobczak @ 1.10.2007, 18:07:29 ) *
to u mnie zadzialalo

  1. INSERT INTO menu_tab( name, anchor, id_cat, id_art, ordering, is_cat, tab_art, blog_art, sel_art, data_dod )
  2. VALUES('nowa kat','nowa kat',8,0, (SELECT * FROM (SELECT MAX( ordering)+1 FROM menu_tab) AS trick), 1, 1, 0, 0, '2007-10-1 16:52:22' );


wielkie dzięki to działa.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.