![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 19.01.2007 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Siemanko
Mam male pytanko zwiazane z zapytaniem w mysqlu:) Storzylem 3 tabele. Ksiazki ( id_ksiazki int not null auto_increment, tytul varchar(100)); Autorzy (id_autora int not null auto_increment, imie varchar(10), nazwisko varchar(30)); Relacje(id_ksiazki int unsigned not null, id_autora int unsigned not null); Ta trzecia tabelka po to jakby ksiazka maiala wiecej niz jedengo autora. Np ksiazka pt:"Kubus puchatek" autorzy: "Marcin Cyrankowski" i "Stefek Burczymucha" Wpisalem te nazawiska do tabeli auorzy i tytul do tabeli ksiazki a do tabeli relacje wstawilem dwa rekordy do jednej ksiazki bo dwa nazwiska np. tak insert into relacje ('1','1'),('1','2'); pierwsz wartosc to id_ksiazki druga atorow. Zeby wyswietlic interesujace mnie informacje o ksiazce uzywam polecenia: select tytul,imie,nazwisko from ksiazki,autorzy, relacje where relacje.id_ksiazki=ksiazki.id_ksiazki and relacje.id_autora=autorzy.id_autora; i wszysto ladnie dziala ![]() Problem w tym ze jezeli mam dwoch autorow to te informacje wyswietlane sa w dwoch rekordach.: Kubus puchatek --- Marcin Cyrankowski Kubus puchatek --- Stefek burczymuch i to mi sie wlasnie nie podoba!!! Bo robie stronke z ksiazkami i jak wrzuce na stronke kodzik php zeby pobral informacje na temat ksiazek t owyswietla mi je w tylu rekordach ilu ksiazka ma autorow ![]() Jak to zmienic ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Zeby bylo wyswietlone Kubus puchatek -- Marcin Cyrankowski, Stefek Burczymucha |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
A nie prościej autorów trzymać w jednym polu razem z danymi książki? Przy wyszukiwaniu po autorze możesz wówczas użyć LIKE.
-------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
A nie prościej autorów trzymać w jednym polu razem z danymi książki? Przy wyszukiwaniu po autorze możesz wówczas użyć LIKE. Chyba nie za bardzo fortunny sposób. Co w przypadku jak chesz wyciągnąc samych autorów i zrobisz zapytanie LIKE %Cyranowski% a w wyniku dostaniesz Cyranowski,Babecki ![]() @kpax81: przy tak ułożonej bazie danych nie widze możliwego zapytania, żeby otrzymać to czego żądasz. Jedynie obrobienie danych da taki efekt. -------------------- 404
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 19.01.2007 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
To jak inaczej ulozyc to baze ?
Moge poprostu stworzyc dwie table: ksiazki(id_ksiazki,tytul,id_autora) autorzy(id_autora,imi,nazwisko) Jezeli dodam w ten sposob ksiazke insert into ksiazki values('','Tytul ksiazki','Autor1;Autor2); --- program juz mi zwraca ostzrezenie ale ksiazka zostaje dodana. Ale jak pobieram informacje select tytul,imie,nazwisko from ksiazki, autorzy where ksiazki.id_autora=autorzy.id_autora to zostaje wyswietlone tylko jedno nazwisko ![]() Jest jakis konkretny sposob na zapytanie lub jakis inny sposob zaprojektowania tabel ? Prosze pomozcie bo juz wymiekam:) |
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 590 Pomógł: 40 Dołączył: 11.01.2007 Skąd: Centrum Ostrzeżenie: (0%) ![]() ![]() |
Nie widze możliwości tak zaprojektowania bazy danych, żeby w jednym wierszu z książką byli wypisani wszyscy autorzy poza sposobem, który pokazał kszychu ale wg mnie ma on też swoje złe strony.
-------------------- 404
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 19.01.2007 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
MOze byc to co krzychu zaproponowal tylko nie rozumiem co on zaproponowal
![]() Moglbys mi poswiecic 5 min ? bo zaraz nerwicy dostane siedze juz nad tym drugi dzien ![]() Stworzyc tabele autorzy ( id_autora, imie_nazwisko) i wstawiac tak dane do autorow : insert into autorzy values('id_autora','MArcin Cyrankowski, Jan Matejko'); ![]() O to chodzilo krzyskowi ? |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 19.12.2006 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
select tytul,imie,nazwisko from ksiazki,autorzy, relacje where relacje.id_ksiazki=ksiazki.id_ksiazki and relacje.id_autora=autorzy.id_autora; [/b] i wszysto ladnie dziala ![]() Najlepszym rozwiazaniem bedzie chyba takie zapytanie:
Nie jestem pewien co do poprawnosci tego zapytania, ale mam nadzieje, ze chociaz podpowie to tok postepowania. -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 19.01.2007 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Moze cos z tego bedzie
![]() Teraz wszyscy autorzy sa przypisani do kazdej ksiazki:) |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 00:20 |