![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 0 Dołączył: 15.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam Państwa serdecznie mam pewien problem. W tabeli o nazwie cechy mam
produkt_id---cecha_id 2345---------1111 2222---------3454 2345---------5423 Jak widać powyżej produkt_id widnieje dwa razy a maja inną cechę_id teraz tak pobieram sobie SELECTEM tabele cechy do tablicy potem daje forach ($cechy as $v){ $sql->Query("UPDATE produkty SET cecha='".$v['cecha_id']."' WHERE id='".$v['produkt_id']."'"); } Do samych produktów dodaje mi ale ostatni wiersz z tabeli cechy tzn 2345----5423 Proszę o pomoc jak dopisywać do jednego rekordu kilka cech_id... |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 511 Pomógł: 143 Dołączył: 13.03.2010 Skąd: Jasło Ostrzeżenie: (0%) ![]() ![]() |
najlepiej przechowywać w osobnej tabeli tak jak to jest teraz i pobierać po prostu z tej tabeli kiedy są potrzebne osobnym zapytaniem, podzapytaniem czy JOINEM, (można też wykorzystać GROUP_CONCAT by w pewnych sytuacjach ułatwić sobie przekazywanie)
jak chcesz je wszystkie mieć w jednym wierszu to albo musisz mieć n dodatkowych kolumn na to, albo tworzysz pole tekstowe gdzie cechy będą oddzielone separatorem np. przecinkiem (możesz do tego wykorzystać GROUP_CONCAT), niemniej jednak jest to złe rozwiązanie i został bym przy dwóch tabelach. Ten post edytował jaslanin 20.06.2012, 20:28:06 -------------------- Good luck and happy PHP'ing
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Najprościej w przypadku takich tabel:
- usuwasz wszystkie wpisy dla konkretnego produktu, - dodajesz nowe rekordy produkt-cecha. Nie robisz żadnego UPDATE, tylko DELETE, a potem INSERT. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 17:18 |