Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Object-oriented programming _ import/export DB>CSV>Excel. Jak odwzorować relację OneToMany w Excel?

Napisany przez: szczrzcz 11.06.2017, 19:34:43

Chciałbym taką funkcjonalność:
- użytkownik eksportuje produkty z db do excel
- edytuje plik
- importuje do bazy

Ale:
- produkty w bazie mają wariacje.
- tzn.: produkt ogórki w tabeli PRODUCT ma product_id==1, ale w tabeli PRODUCT_VARIATION te ogórki o product_id==1 mogą być w opakowaniach 100g, 300g, 500g i każdy ma inne SKU.

Kod
+-------------------+
| PRODUCT           |
+-------------------+
| id | product_name |
+----+--------------+
| 1  |    ogórki    |
+----+--------------+
| 2  |    fasola    |
+----+--------------+
| 3  |   rzodkiew   |
+----+--------------+
| 4  |     arbuz    |
+----+--------------+

Kod
+-------------------------------+
| PRODUCT_VARIATION             |
+-------------------------------+
| id | product_id | sku | price |
+----+------------+-----+-------+
| 1  |      1     | 89  | 2,00  |
+----+------------+-----+-------+
| 2  |      1     | 90  | 3,00  |
+----+------------+-----+-------+
| 3  |      1     | 91  | 5,00  |
+----+------------+-----+-------+
| 4  |      2     | 99  | 4,00  |
+----+------------+-----+-------+




Jak odwzorować taką relację w excel?

Napisany przez: Tomplus 12.06.2017, 05:38:20

Z OOP to nie ma nic wspólnego. Takich tematów tutaj się nie pisze.

A jak coś, poszukaj sobie w Google jakiś bibliotek PHP -> SQL to Excel/XLS
np.: https://github.com/PHPOffice/PHPExcel

Nie testowałem, więc nie wiem czy rozdziela na arkusze, ale mozesz przetestować.

Napisany przez: Pyton_000 12.06.2017, 20:57:50

Z plikami na których ja pracowałem rozwiązane jest to w ten sposób że każdy wiersz zawiera pełny wariant więc do tego co masz w wyniku product_variant doklejasz product_name z tabeli product.

Potem przy importowaniu musisz sobie obsługiwać to czyli grupując wiersze po product_id.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)