PHP + mysql wyświetlanie danych.

Odpowiedz Nowy wątek
kryko
2012-01-15 14:02
kryko
0

Witam,
Problem następujący. Tworzą bazę z następującymi tabelami:

Klient (Id, Imię, Nazwisko, Telefon)
Pojazd (Id, Marka, Rejestracja)
Przeglad (Data, Wynik)

Jak teraz ustawić klucze główne i gdzie dodać klucze obce. Abym mógł uzyskać taki efekt, że po wyszukaniu np. klienta obok umieszczał bym link do profilu. W którym znajdowały by się kompletne dane o kliencie (Imie, Nazwisko, Tel, Marka, Rejestracja) oraz dodata ostatniego przeglądu.

Pozostało 580 znaków

2012-01-15 14:40
Moderator

Rejestracja: 17 lat temu

Ostatnio: 12 godzin temu

0

Wiele przeglądów -> jeden pojazd
Wiele pojazdów -> jeden klient.

Więc Przegląd powinien mieć IdPojazdu którego dotyczył, będące kluczem obcym w stosunku do Pojazdu, a Pojazd powinien mieć IdKlienta (czyli właściciela).

Pozostało 580 znaków

kryko
2012-01-15 14:56
kryko
0

Czyli powinno to wyglądać tak?

Klient (PK Id_Klient, Imię, Nazwisko, Telefon)
Pojazd (PK Id_Pojazd, Marka, Rejestracja, FK Id_Klienta)
Przeglad (Data, Wynik, FK Id_Pojazd)

Pozostało 580 znaków

2012-01-15 16:51
Moderator

Rejestracja: 17 lat temu

Ostatnio: 12 godzin temu

0

Tak. Choć jeszcze moim zdaniem przegląd też powinien mieć swoje Id_Przegląd będące kluczem głównym.

Pozostało 580 znaków

kryko
2012-01-15 17:17
kryko
0

Dodatkowo dodam jeszcze tabele dla pracownika, który wykonał przegląd. Czy teraz jest ok?
Pracownik (Id_Pracownika, Imię, Nazwisko)
Klient (PK Id_Klient, Imię, Nazwisko, Telefon)
Pojazd (PK Id_Pojazd, Marka, Rejestracja, FK Id_Klienta)
Przeglad (PK Id_Przeglad, Data, Wynik, FK Id_Pojazd, FK Id_Pracownika)

Zrobiłem wstępnie stronę profilu klienta, która będzie pod adresem profile.php?user_id=1. Problem polega na zrobieniu wyszukiwarki, która po wyszukaniu np. po nazwisku obok wyniku wyświetla link do profile.php?user_id=[id wyszukanego klienta]

Pozostało 580 znaków

2012-01-15 20:09
Moderator

Rejestracja: 17 lat temu

Ostatnio: 12 godzin temu

0

Prawie, nie zaznaczyłeś, że Id_Pracownik to też PK, ale mam nadzieję, że o tym pamiętasz :-)

Co do szukania - proste zapytanie SELECT Id_Klient FROM Klienci WHERE Nazwisko = 'whatever' zwraca id, które ty możesz następnie dokleić do linka.

Pozostało 580 znaków

kryko
2012-01-15 21:31
kryko
0

Dzięki wielkie! Póki co wszystko ładnie działa. W razie problemów jeszcze się odezwę.

Pozostało 580 znaków

kryko
2012-01-21 16:33
kryko
0

Mam kolejne pytanie.
Przykładowo: Jestem zalogowany jako Pracownik, dodaje klienta do bazy (tabela klient) następnie wchodzę w jego profil (do tego miejsca nie mam pytań) i tutaj chciałbym zrealizować dodawanie pojazdów. A więc system miałby od razu powiązać, że dodaje pojazd dla klienta w profilu którego jestem. Pojazdów mogę dodać mu kilka, a następnie będąc w profilu tego klienta z pola combobox wybieram o który pojazd mi się rozchodzi. Później przenosi mnie na profil pojazdu gdzie mam listę przeglądów, które już były wykonane i mam możliwość dokonać kolejnego (system ma wykryć jaki pracownik go wykonuje i to zapisać). Mój problem polega na tym powiązaniu danych, że dodając pojazd od razu przypisało mi do niego klienta, a wykonując później przegląd zapisywało dane pracownika który jest zalogowany.
Baza wygląda dokładnie tak:
Pracownik (PK Id_Pracownika, Imię, Nazwisko, Login, Haslo)
Klient (PK Id_Klient, Imię, Nazwisko, Adres, Telefon, Mail)
Pojazd (PK Id_Pojazd, Marka, Model, Rejestracja, Typ, FK Id_Klienta)
Przeglad (PK Id_Przeglad, Data, Wynik, FK Id_Pojazd, FK Id_Pracownika)

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0