Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Masowe dodanie produktu z wariantami
Niree
post 12.10.2017, 23:19:39
Post #1





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

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


Dzień dobry, napisałem własnego frameworka sklepu internetowego.
Teraz przyszedł temat masowego dodawania produktów. Aktualnie wszystko trzeba robić ręcznie.
Przykładowo mam produkt Koszulka, warianty:

  1. Kolor: Czarny | Biały
  2. Rozmiary: S|M|L|XL


No i wiadomo, musi być łącznie 8 produktów. Czarna S, Biała S, Czarna M, Biała M i tak dalej.
Ale chciałbym to usprawnić, czyli wpisujemy tylko nazwę produktu a system sam mnoży warianty między siebie i tworzy kolejno produkty.

Przykład z ostatniej chwili:
Warianty:
  1. WARIANTID: 1 - [0] => Czarny [1] => Biały [2] => Fioletowy [3] => Bordowy [4] => Szary
  2. WARIANTID: 2 - [0] => S [1] => M [2] => L [3] => XL
  3. WARIANTID: 3 - [0] => Duszek [1] => Czaszka



No i wiadomo, chciałbym po kliknięciu "Zapisz", od razu mieć w bazie łącznie 40 produktów, czyli kolejno Biały-S-Duszek, Biały-S-Czaszka itp, kolejność dowolna, byleby było ich 40 i w miarę alfabetycznie.

Warianty w produkcie w MySQL zapisuję w ten sposób:
  1. IDWariantu:Wariant

Czyli w przypadku wariantów dla produktu Biały-S-Duszek:
  1. 1:Biały|2:S|3:Duszek


Nie wiem tylko jak to zrobić, działać pętlami, czy jak to ugryźć. Co mam dokładnie zapętlić.

Ten post edytował Niree 12.10.2017, 23:22:00
Go to the top of the page
+Quote Post
Wazniak96
post 13.10.2017, 06:27:52
Post #2





Grupa: Zarejestrowani
Postów: 550
Pomógł: 75
Dołączył: 5.06.2012
Skąd: Lębork

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


Najłatwiej to chyba ugryźć rekurencją i schodzić w dół z każdym nowym wariantem i dodawać fragmenty zapytania do tablicy string.
Go to the top of the page
+Quote Post
Neutral
post 13.10.2017, 10:22:43
Post #3





Grupa: Zarejestrowani
Postów: 286
Pomógł: 46
Dołączył: 10.01.2016

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


  1. <?php
  2. $arrColor = [0=>'black',1=>'white'];
  3. $arrSize = ['S','M','L','XL'];
  4.  
  5. for($i=0;$i<=3;$i++) {
  6. for($j=0;$j<=1;$j++){
  7. $arr[]= $arrColor[$j].' '.$arrSize[$i];
  8. }
  9. }
  10. print_r($arr);
  11.  
  12. ?>


Ten post edytował Neutral 13.10.2017, 10:22:53
Go to the top of the page
+Quote Post
Niree
post 13.10.2017, 11:33:48
Post #4





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

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


Cytat(Neutral @ 13.10.2017, 11:22:43 ) *
  1. <?php
  2. $arrColor = [0=>'black',1=>'white'];
  3. $arrSize = ['S','M','L','XL'];
  4.  
  5. for($i=0;$i<=3;$i++) {
  6. for($j=0;$j<=1;$j++){
  7. $arr[]= $arrColor[$j].' '.$arrSize[$i];
  8. }
  9. }
  10. print_r($arr);
  11.  
  12. ?>


No tak, tylko że to musi być zautomatyzowane. Nie wiem czy będą 2 warianty, czy 3 lub nawet 4.
Go to the top of the page
+Quote Post
Neutral
post 13.10.2017, 11:41:44
Post #5





Grupa: Zarejestrowani
Postów: 286
Pomógł: 46
Dołączył: 10.01.2016

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


OK, zapomniałem zmienić wartość stałą na wartość zmienną.

  1. for($i=0;$i<count($arrSize);$i++) {
  2. for($j=0;$j<count($arrColor);$j++){
Go to the top of the page
+Quote Post
Niree
post 13.10.2017, 11:45:15
Post #6





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

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


Cytat(Neutral @ 13.10.2017, 12:41:44 ) *
OK, zapomniałem zmienić wartość stałą na wartość zmienną.

  1. for($i=0;$i<count($arrSize);$i++) {
  2. for($j=0;$j<count($arrColor);$j++){


Okej, podałeś mi rozwiązanie dla dwóch wariantów.

  1. WARIANTID: 1 - [0] => Czarny [1] => Biały [2] => Fioletowy [3] => Bordowy [4] => Szary
  2. WARIANTID: 2 - [0] => S [1] => M [2] => L [3] => XL
  3. WARIANTID: 3 - [0] => Duszek [1] => Czaszka


A jak rozwiązać sprawę z takimi wariantami? Gdzie dodać kolejną pętlę lub jak zautomatyzować, żeby automatycznie tworzyło pętlę jeżeli jest więcej wariantów.

Ten post edytował Niree 13.10.2017, 11:46:35
Go to the top of the page
+Quote Post
Pyton_000
post 13.10.2017, 12:58:08
Post #7





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Dokładne rozwiązanie Twojego problemu smile.gif https://stackoverflow.com/questions/8567082...multiple-arrays
Go to the top of the page
+Quote Post
Niree
post 13.10.2017, 14:35:53
Post #8





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

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


Cytat(Pyton_000 @ 13.10.2017, 13:58:08 ) *


Ale świetnie! Właśnie nie wiedziałem jak to wpisać, żeby wyszukało. Słowo klucz "kombinacje". Dzięki wielkie, leci "pomógł" dla Was.
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: 23.04.2024 - 09:34