olej3232 utworzono 18 grudnia 2009 utworzono 18 grudnia 2009 Witam, znów pojawił się problem z php Mam bazę z tabelą jak na rysunku oraz stronę na której: Nad kreską określamy z ilu elementów znajdujących się w tabeli będzie składał się nowy element. Jeśli określimy, pojawia się to co pod kreską tyle razy, ile jest elementów (pętla). Do tego momentu nie ma problemu. Jednego razu będzie się składać z 3 elementów z tablicy, innego z 5 nie bardzo wiem, jak zapisać te dane do bazy. Nie chodzi mi o kod źródłowy, tylko o teorię. [b]Heh pomyliłem załączniki i nie wiem jak usunąć. W polu select są te same dane co w tabelce.[/b]
luq komentarz 18 grudnia 2009 komentarz 18 grudnia 2009 Z tego co rozumiem chodzi Ci o relacje jeden do wielu. Problemy takie rozwiązujesz na kolejnej tabelce. Dla przykładu. Mamy tabelkę [b]a[/b]: [u]aId[/u] | aName oraz tabelkę [b]b[/b]: [u]bId[/u] | bName i chcemy aby pojedyncze rekordy z tabelki [b]a[/b] nawiązywały relację z dowolną ilością rekordów z tabelki [b]b[/b], tworzymy tabelkę [b]a_relation_b[/b] [u]relationId[/u] | aId | bId i wtedy mamy możliwość robienia czegoś takiego: [code] relationId | aId | bId 1 1 1 2 1 2 3 1 5 [/code] (jeden rekord z [b]a[/b] ma 3 rekordy z tabelki [b]b[/b]) Poza tym rozwiązanie ze wpisaniem liczby rekordów jest imho nie wygodne, lepiej zrobić coś takiego (przykład ze zlecenia wykonywanego przeze mnie) [img]http://images44.fotosik.pl/239/1affad015e1105ff.jpg[/img] Po kliknięciu na [...] wyświetla się nowe okienka w którym coś wybierasz oraz dodaje się nowy <input/> poniżej, klikając na [x] usuwasz. Od strony usera dużo bardziej wygodne. 1
olej3232 komentarz 18 grudnia 2009 Autor komentarz 18 grudnia 2009 Nie wiem jak będzie wyglądało przeszukiwanie bazy [b]a_relation_b[/b] w końcu może osiągnąć spore rozmiary. Zobaczymy jak to wyjdzie, niestety nie miałem kontaktu z dużymi bazami mysql. Pomysł z dodawaniem rekordu dość ciekawy. Spróbuję coś takiego napisać, choć nie mam pojęcia jak kod powinien wyglądać
luq komentarz 18 grudnia 2009 komentarz 18 grudnia 2009 [quote]Nie wiem jak będzie wyglądało przeszukiwanie bazy a_relation_b w końcu może osiągnąć spore rozmiary. Zobaczymy jak to wyjdzie, niestety nie miałem kontaktu z dużymi bazami mysql.[/quote] Ja mam w jednej takiej tabelce 469 rekordów. Zapytanie zwracające wszystkie rekordy z tej tabelki + 2x LEFT JOIN [code] Wykonanie zapytania trwało 0.0017 sekund(y) [/code]
olej3232 komentarz 20 stycznia 2010 Autor komentarz 20 stycznia 2010 (edytowane) [quote name='luq' date='18 grudzień 2009 - 12:34 ' timestamp='1261136091' post='924551'] Po kliknięciu na [...] wyświetla się nowe okienka w którym coś wybierasz oraz dodaje się nowy <input/> poniżej, klikając na [x] usuwasz. Od strony usera dużo bardziej wygodne. [/quote] Możesz mi podpowiedzieć jak się za to zabrać? EDIT: Jak się człowiek wyśpi to wszystko napisze W końcu trochę odespałem i samo się napisało [code] <?php $act = $_GET['act']; if ($act == 0) { $x = 1; } else { $x = 1 + $act; } for($i = 0; $i < $x; $i++) { echo "<input name='szt' type='text' size='3' value='$x' /> szt.<br>"; } echo "<a href='?test.php&act=$x>Dodaj</a>"; [/code] EDIT Wszystko fajnie działa dopóki mam jedno pole które chce rozmnażać, na dwa już nie działa obydwa równocześnie się mnożą. Muszę kombinować dalej
luq komentarz 29 stycznia 2010 komentarz 29 stycznia 2010 [quote name='olej3232' date='20 styczeń 2010 - 15:12' timestamp='1263996743' post='954593'] Możesz mi podpowiedzieć jak się za to zabrać? [/quote] Oczywiście JS. window.open() aby otworzyć nowe okienko a potem odwołanie się do okna rodzica - parent.window. Musisz tylko dodać do okienka rodzica w odpowiedniego inputa wybraną wartość i tyle. [quote] Wszystko fajnie działa dopóki mam jedno pole które chce rozmnażać, na dwa już nie działa obydwa równocześnie się mnożą. Muszę kombinować dalej [/quote] Podaj kod tej replikacji.
olej3232 komentarz 11 lutego 2010 Autor komentarz 11 lutego 2010 [code]<form action="xxx.php"> Część pierwsza: <select name="name"> <option>Jakieś dane z bazy</option> <option>Jakieś dane z bazy2</option> </select> Jakieś pole tekstowe<input type="text" name="txtname"> <a href="#">PRZYCISK USUWAJĄCY POLE</a><BR> <a href="#">NASTĘPNY</a> <hr> Część druga: <select name="name2"> <option>Jakieś dane z bazy</option> <option>Jakieś dane z bazy2</option> </select> Jakieś pole tekstowe<input type="text" name="txtname2"> <a href="#">PRZYCISK USUWAJĄCY POLE</a><BR> <a href="#">NASTĘPNY</a> <BR><BR> <button type="button">ZAPISZ</button> </form>[/code] Strona ma wyglądać jak wyżej (wrzucisz w pliczek .htm i będziesz wiedział o co mi chodzi) Sorry że dopiero teraz piszę, ale miałem trochę prywatnych spraw na głowie Następny dodaje kolejnego select-a oraz pole tekstowe. Wszystko razem chcę zapisać do bazy.
Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!
Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.