![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 2.11.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich.
Nie do końca wiedziałem jaki tytuł wybrać, ale postaram się opisać mój problem. Potrzebuje wykonać małą, prostą aplikacje do zarządzania biblioteką - proste funkcje. Nie poradziłem sobie z wypożyczaniem książki. Sytuacja wygląda tak: w bazie danych mam 3 tabele: czytelnicy(id,imie,nazwisko,pesel), ksiazki (id,tytul,autor) i wypozyczenia(id_wyp,id_ksiazki i id_czytelnika) - wszystko jest ze sobą połączone i działa poprawnie(przez phpmyadmina wpisałem przykładowe wypożyczenia i działa). W aplikacji mam dwie listy rozwijane, które pobierają dane z moich tabel oraz pola typu radio. Przykładowo: z listy wybieram Jana Kowalskiego i Pana Tadeusza, zaznaczam opcje wypożycz no i zatwierdzam - książka powinna być wypożyczona, ale nie wiem(albo nie umiem tego zrobić bo szukałem sporo w internecie) połączyć czytelnika i książki z wypożyczeniem. Pokaże prawie cały kod, to będzie chyba najprosciej:
Możliwe, że coś w końcu namieszałem bo troszke zmieniałem kod szukając rozwiązania. Liczę na wasze wskazówki:) Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 376 Pomógł: 47 Dołączył: 23.08.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
A wiec...
1) po co Ci w 17. linijce value='' ? Przeciez Twoje value ma byc pobrane z listy rozwijanej, tj. ID 2) dlaczego w 79. linijce wstawias ID, ID_CZYTELNIKA, ID_KSIAZKI zamiast ID, ID_KSIAZKI, ID_CZYTELNIKA? Wyzej podales inna kolejnosc kolumn 3) co robia linijki 25. - 37.? 4) nigdy nie uzywalem $_SERVER['REQUEST_METHOD'] == 'POST', co najwyzej:
Ale nie neguje Twojego rozwiazania, po prostu nie wiem jak sie zachowuje 5) Dlaczego dolaczasz LEFT JOINem tabele czytelnikow i wypozyczen? A co jesli 1 czytelnik ma wiele wypozyczen? Wtedy jest relacja 1-do-wiele i potrzebny jest RIGHT JOIN. Natomiast jesli chodzi o tabele ksiazki... to... tak - LEFT JOIN, zgadza sie. Dolaczasz do tabeli wypozyczenia, bo w 1 wypozyczeniu masz 1 ksiazke, czyli relacja 1-do-1. Chociaz niektorzy powiedza, ze w 1 wypozyczeniu mozna miec kilka ksiazek, ale z tego co zrozumialem, Twoja aplikacja pozwala na wypozyczenie 1 ksiazki, a potem ewentualnie powrot do poprzedniej strony i wypozyczenie na tego samego uzytkownika innej pozycji. ALE kazda taka operacja traktowana jest w bazie jako osobny wpis/rekord. W JOIN'ach moglem sie pomylic, gdyz pisze ten post na szybko (IMG:style_emoticons/default/wink.gif) Najlepiej bedzie jesli otworzysz phpMyAdmin'a, otworzysz okienko zapytania i poprobujesz tak, zeby Ci ladna tabelka wyszla ze wszystkimi danymi jakich sobie zyczysz. Przy RIGHT JOIN, o ile mnie pamiec nie zawodzi, sa powtorzenia rekordow i wtedy przydaje sie polecenie GROUP BY. W kazdym razie jak wyjdzie Ci wszystko w okienku zapytania to juz polowa sukcesu (IMG:style_emoticons/default/smile.gif) 6) w celach porzadkowych: konstrukcje takie jak... ...mozesz z powodzeniem zastapic...
Powodzenia (IMG:style_emoticons/default/smile.gif) Ten post edytował Kaloryfer 3.11.2011, 02:05:28 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 17:53 |