Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] [mysql] $_POST. pętla i insert, jak wyciągnąć z tablicy niektóre zmienne i zapisać do bazy mysql
tomotomo1
post 3.05.2015, 19:49:59
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 3.05.2015

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


Witajcie.
Jest mały sklepik. Klient robi zakupy. Jego zakupy mam w $_POST i wygląda to tak:

[ilosc_pozycji] => 2

[nazwa_1] => rzecz a
[ilosc_1] => 10
[cena_1] => 2
[zdjecie_1] => thumb: ../img/dod2.jpg

[nazwa_2] => rzecz b
[ilosc_2] => 50
[cena_2] => 5
[zdjecie_2] => thumb: ../img/dod3.jpg

... itd. według takiego schematu.

W pętli for robię tak:
  1. for ( $i = 1; $i <= $_POST [ "iloscpozycji" ]; $i++ )
  2. {
  3. $nazwa = $_POST["nazwa_$i"];
  4. $ilosc = $_POST["ilosc_$i"];
  5. }

Mam tabelę zamowienia. W niej różne pola z danymi klienta (adres, nazwa, kwota itp) oraz pole zamowienie.
Do pola zamowienie chcę dodać tylko nazwę + ilość, czyli rzecz a - 10 rzecz b - 50 itd. jeśli będzie więcej.

Nie wiem jak to zrobić bo:
1. Kiedy chcę dodać np. tylko nazwę towaru i inserta wstawiam do pętli, to dodaje mi dwa rekordy.
Wszystkie dane są takie same, tylko pole zamowienie się zmienia.
W pierwszym rekordzie mam rzecz a - w drugim rzecz b

2. Kiedy insert wstawiam poza pętlą, to dodaje mi jeden rekord, ale w polu zamowienie mam tylko
ostatnią pozycję, czyli rzecz b

Reasumując:
Chcę to tak zrobic, żeby insert wstawiał jeden rekord, a w pole zamowienie nazwę i ilość wszystkich zamowionych przedmiotów.
Insert wygląda tak:
  1. $zapytanie = "INSERT INTO zamowienie (email, kod, miasto, zamowienie)
  2. VALUES ('$email', '$kodpocztowy', '$miasto', '$nazwa')";
  3.  
  4. $insert = mysql_query($zapytanie);


Jak mam to zrobić ?

Ten post edytował tomotomo1 3.05.2015, 19:56:50
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
SwiezuPL
post 3.05.2015, 20:02:42
Post #2





Grupa: Zarejestrowani
Postów: 38
Pomógł: 9
Dołączył: 16.11.2014
Skąd: Warszawa

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


Zdajesz sobię sprawe że to jest bez sensu..?
Nahp... Ale jak już, to po prostu dodaj do siebie nazwy przedmiotów i między tymi nazwami ", ". To wszystko będzie stringiem. Tak samo ceny.
Możesz też sobie zrobić ograniczenie do x produktów na zamówienie, i zrobić nazwa_1, cena_1, nazwa_2, cena_2.
Innej opcji nie widzę. Aczkolwiek obie są bez sensu, bo takie zapisywanie danych jak ty chcesz to zrobić nie ma sensu.

Nie kalecz, i zobacz jak zapisują przykładowe skrypty dane do mysql, to robisz to źle.

Nie oczekuj gotowej odpowiedzi, analiza przy programowaniu ci się przyda.
Go to the top of the page
+Quote Post
tomotomo1
post 4.05.2015, 08:24:17
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 3.05.2015

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


Dzięki SwiezuPL za odpowiedź.

Wiem, że wygląda to bez sensu.
Nie mam na to wpływu, sklepik jest już zrobiony i działa.
Moim zadaniem jest dodać tylko informację nazwa+ilość do bazy.
Rzeczy typu podliczanie koszyka, rabaty itp są już zrobione wcześniej.
Na tych danych nie będą robione żadne operacje.
Jako, że dopiero zaczynam przygodę z programowaniem, nie wpadłem
na to, żeby użyć po prostu kropki i połączyć to wszystko w string.
Za to Ty tak.
W zamian naciskam "Pomógł" i pozdrawiam.
Go to the top of the page
+Quote Post
Tuminure
post 4.05.2015, 09:05:35
Post #4





Grupa: Zarejestrowani
Postów: 178
Pomógł: 49
Dołączył: 16.04.2012
Skąd: Bytom

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


Zastanów się co się stanie w sytuacji gdy wyślę takiego requesta:

  1. [ilosc_pozycji] => asd
  2.  
  3. [nazwa_1] => rzecz a
  4. [ilosc_1] => 10
  5. [cena_1] => 2
  6. [zdjecie_1] => thumb: ../img/dod2.jpg
  7.  
  8. [nazwa_2] => rzecz b
  9. [ilosc_2] => 50
  10. [cena_2] => 5
  11. [zdjecie_2] => thumb: ../img/dod3.jpg
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: 14.08.2025 - 10:47