winiar789
20.06.2012, 19:56:44
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...
jaslanin
20.06.2012, 20:26:16
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.
phpion
21.06.2012, 09:53:31
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.
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.