Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] [mysql] $_POST. pętla i insert
Forum PHP.pl > Forum > Przedszkole
tomotomo1
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ć ?
SwiezuPL
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.
tomotomo1
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.
Tuminure
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
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.