Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Złożone zapytanie Insert z Select
Forum PHP.pl > Forum > Przedszkole
kielich
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');
Meares
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'));
kielich
no raczej nie działa tongue.gif
vokiel
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";
kielich
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
vokiel
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).
Meares
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
kielich
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 ;/)

thek
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.
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.