Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Złożone zapytanie Insert z Select
kielich
post 24.10.2009, 18:35:11
Post #1





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


Witam napisałem nowy temat iz mój ostatii zrobił się taki .... niejasny
Wiec musze zrobic inserta z selectem a dokładnie to w takie konstrukcji

  1. $query = "INSERT INTO tabela (nazwa, xxx, xxx, xxx, xxx, xxx, xxxx,nazwa_ca,czas)". "VALUES ('$nazwa', '$xxx', '$xxx', '$xxxx', '$xxxx', '$id','$sposob_zamowienia','".I WŁASNIE TU SELECT."', NOW())"; $result=mysql_query($query) OR die ('Nie mozna wykonanac.Przepraszamy');


Ten post edytował kielich 24.10.2009, 18:35:24


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
Meares
post 24.10.2009, 18:42:29
Post #2





Grupa: Zarejestrowani
Postów: 102
Pomógł: 13
Dołączył: 16.10.2009
Skąd: Łódź

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


Głupie ale działa:
  1. INSERT INTO `tabela_a` (`kolumna_a`, `kolumna_b`) VALUES ('wartosc_a', (SELECT `wartosc_b` FROM `tabela_b` WHERE `wartosc_c`='buahaha'));


Ten post edytował Meares 24.10.2009, 18:42:39


--------------------
manual mmocenter
Nie pomagam na PW!
Go to the top of the page
+Quote Post
kielich
post 24.10.2009, 18:56:04
Post #3





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


no raczej nie działa tongue.gif


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post
vokiel
post 24.10.2009, 19:07:22
Post #4





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Co chcesz wstawić? Bo z Twojego posta wynika, że chcesz wstawić NOW(), a do tego nie jest Ci potrzebny SELECT.

Jeśli chcesz połączyć wstawienie danych, które już masz, z tymi z SELECT, to dopisz te zmienne właśnie do tego SELECT.
Czyli:
  1. $query = "INSERT INTO `tabela`(kolumna1, kolumna2) SELECT ".zmienna1.", ID from tabela2 where warunek=1";


--------------------
Go to the top of the page
+Quote Post
kielich
post 24.10.2009, 19:11:37
Post #5





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


Chce wstawic wszytskie dane które mam pod xxx ,jak również nazwa itd wszytsko co jest w zapytaniu a tam gdzie jest "I WŁASNIE TU SELECT" mam wstawic select ale nie wiem jak je tam wcisnac ;/

wogóle to niewiem ze tak sie da bo ja wkładam dane pobrana przez usera i dotego wycigam danez innej tabeli i wkładam je razem z tymi co user wpisał tak na marginesie


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post
vokiel
post 24.10.2009, 20:10:13
Post #6





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Czyli, o ile dobrze zrozumiałem, chcesz wstawić na raz dane odebrane od użytkownika wraz z wyszukanymi, tak?
No to tak jak pisałem:
  1. $query = "INSERT INTO tabela (nazwa, xxx, zzz, nazwa_ca, czas) SELECT '".$nazwa."', '".$xxx."', '".$zzz."', `nazwa_ca`, NOW() FROM druga_tabela where ID=$id";

Żeby nie wstawiać w skrypcie NOW(), ustaw dla pola typ TIMESTAMP i default CURRENT_TIMESTAMP (wtedy w insertach możesz to pole pominąć całkowicie).


--------------------
Go to the top of the page
+Quote Post
Meares
post 24.10.2009, 20:14:57
Post #7





Grupa: Zarejestrowani
Postów: 102
Pomógł: 13
Dołączył: 16.10.2009
Skąd: Łódź

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


Cytat(kielich @ 24.10.2009, 19:56:04 ) *
no raczej nie działa tongue.gif
No u mnie zadziałało. smile.gif Specjalnie sprawdziłem, bo wiedziałem, że to głupi pomysł. haha.gif


--------------------
manual mmocenter
Nie pomagam na PW!
Go to the top of the page
+Quote Post
kielich
post 24.10.2009, 21:46:12
Post #8





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


No OK zrobiłem i działa ale problem inny sie pojawił omówie jak to dzial:
prze wybraniu zamówienia user wpisuje nazwa która chce miec na produkcie po kliknieciu dalej nazwy wpisane zapisująsię w bazie (dalej tam przechodzi wybór przesylki itd) no i na koncu kiedy zapisuje zamówienie do tabeli z zamowieniami, wyciągam te dane które user wpisał i zapisuje je razem z zamówieniem do tebeli z zamówieniami.
więc ilosc zamówionych produktów= ilosc wpisanych nazwa (do kazdego prdoduktu trzeba podac nazwe chyba jasne smile.gif
a o to kod

  1. $query = "INSERT INTO zamowienia (nazwa_prod, cena, wartosc, ilosc, klient, id_produktu, sposob_zamowienia,nazwa_na_produ,czas)". "VALUES ('$nazwa', '$cena', '$wartosc', '$ilosc', '$nazwa_user', '$id','$sposob_zamowienia',(SELECT sessia_name FROM session WHERE name_user='".$_SESSION['zalogowany']."' and date >= DATE_SUB(NOW(),INTERVAL 10 MINUTE) ORDER BY id ASC), NOW())";
  2. $result=mysql_query($query) OR die ('Nie mozna wykonanac.Przepraszamy');


i to działa tylko kiedy dodam do select limit 1 w where wyzej i np. kiedy 2 produkty sa zamówione to nazwa na produkcie jest jedna i ta sama jak zrobic zeby do kazdego produktu dokleił mi nazwe (ilosc zamawianych= ilosc nazw ale tylko działa z limit 1 ;/)



Ten post edytował kielich 24.10.2009, 21:46:35


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post
thek
post 25.10.2009, 13:43:40
Post #9





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Napisz konkretny przykład jak to ma wyglądać w praktyce, bo w swoich tematach tak mydlisz, że nikt nie wie o co Ci chodzi dry.gif
Napisz example z działań usera i co wpisuje, co idzie do bazy, co do zapytania. Najlepiej z sytuacją, gdzie coś się dubluje. Bo jak dla mnie wpisywanie do tablicy 2 razy tego samego produktu by potem sprawdzać czy nie ma dubli, jeszcze na dodatek pozwalając userowi wpisywać nazwy z palca to trzeba z leksza być naiwnym i liczyć, że nie wpiszą głupot do pól formularza by Ci wysypać stronę biggrin.gif Jesli jeszcze nie masz walidacji tego co wpisują to sam chętnie bym Ci stronę pod kątem ataku XSS czy sql injection sprawdził winksmiley.jpg Takie pisanie sklepu internetowego to po prostu proszenie się samemu o atak. A potem jest taki bajzel jak u firmy z jaką pracowaliśmy, gdzie nie potrafili zlokalizować danych jakie im wysłaliśmy na serwer 3-krotnie i za każdym razem je gubili. Zakończyliśmy współpracę, bo z niepoważnymi firmami po prostu się tylko wkurzasz zamiast robić swoje. I jeszcze twierdzili, że błąd jest z naszej strony. A jak byk na ten sam serwer ftp posyłane byly dane i za każdym razem po pewnym czasie znikały wraz z innymi. A za każdym razem po wysłaniu był telefon i "Tak, są na serwerze". Ostatnio zaś przeszli samych siebie... Stwierdzili, ze nie wiedzą co zrobić z naszym logo w tiff, a dodam, że po wysłaniu im go w pliku psd stwierdzili, że nie mogą otworzyć bo mają Corela biggrin.gif Skonwertowaliśmy do tiff... I znowu mieli jakieś problemy, a potem zaczęli logo gubić z serwerów. Sam nie wiem czy śmiać się czy płakać nad "profesjonalizmem" takiej firmy.

Dlatego napisz co chcesz i jak chcesz to Ci się podpowie co zrobić bo nie sądzę by się nie dało.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 06:10