Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]MySQL zwraca mi błąd przy insert, gdy w składni używam SELECT
yaotzin
post
Post #1





Grupa: Zarejestrowani
Postów: 157
Pomógł: 0
Dołączył: 12.02.2007
Skąd: Zielona Góra

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


  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


--------------------
------
Per Aspera Ad Astra
Go to the top of the page
+Quote Post
qqrq
post
Post #2





Grupa: Zarejestrowani
Postów: 418
Pomógł: 8
Dołączył: 16.11.2006

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


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?


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





Grupa: Zarejestrowani
Postów: 157
Pomógł: 0
Dołączył: 12.02.2007
Skąd: Zielona Góra

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


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

Ten post edytował yaotzin 1.10.2007, 16:34:48


--------------------
------
Per Aspera Ad Astra
Go to the top of the page
+Quote Post
nevt
post
Post #4





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

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


..., SELECT (MAX(ordering) + 1) AS maximum FROM menu_tab, ....

pozdrawiam.


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
yaotzin
post
Post #5





Grupa: Zarejestrowani
Postów: 157
Pomógł: 0
Dołączył: 12.02.2007
Skąd: Zielona Góra

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


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


--------------------
------
Per Aspera Ad Astra
Go to the top of the page
+Quote Post
tomeksobczak
post
Post #6





Grupa: Zarejestrowani
Postów: 139
Pomógł: 10
Dołączył: 6.07.2007
Skąd: opole

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


sprobuj dac subselecta w ()

Ten post edytował tomeksobczak 1.10.2007, 16:52:21


--------------------
Go to the top of the page
+Quote Post
yaotzin
post
Post #7





Grupa: Zarejestrowani
Postów: 157
Pomógł: 0
Dołączył: 12.02.2007
Skąd: Zielona Góra

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


Cytat(tomeksobczak @ 1.10.2007, 17:52:08 ) *
sprobuj dac subselecta w ()


dawałem i to samo


--------------------
------
Per Aspera Ad Astra
Go to the top of the page
+Quote Post
nevt
post
Post #8





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

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


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.

Ten post edytował nevt 1.10.2007, 17:01:46


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
yaotzin
post
Post #9





Grupa: Zarejestrowani
Postów: 157
Pomógł: 0
Dołączył: 12.02.2007
Skąd: Zielona Góra

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


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ąć :/


--------------------
------
Per Aspera Ad Astra
Go to the top of the page
+Quote Post
tomeksobczak
post
Post #10





Grupa: Zarejestrowani
Postów: 139
Pomógł: 10
Dołączył: 6.07.2007
Skąd: opole

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


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' );


Ten post edytował tomeksobczak 1.10.2007, 17:09:17


--------------------
Go to the top of the page
+Quote Post
yaotzin
post
Post #11





Grupa: Zarejestrowani
Postów: 157
Pomógł: 0
Dołączył: 12.02.2007
Skąd: Zielona Góra

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


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.


--------------------
------
Per Aspera Ad Astra
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: 21.08.2025 - 04:16