• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak połączyć drugą tabelę w MySql z pierwszą?

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
2,184 wizyt
pytanie zadane 20 lipca 2015 w PHP przez Mr Popcorn Bywalec (2,340 p.)

Kłaniam się z góry, jak rzadko który, witam i o zdrowie pytam.
Moja prośba do Was oparta jest na drugim kursie PHP Mirosława Zelenta,
http://miroslawzelent.pl/kurs-php/logowanie-do-strony-sesja-wstrzykiwanie-sql/
w którym to stworzyliśmy grę przeglądarkową "Osadnicy".
Utworzyłem drugą tabelę o nazwie "zbrojmistrz" i potrzebuję połączyć ją z tabelą "users" tak,
aby po zalogowaniu dana osoba widziała, jakie i ile broni i zbroi posiada.
Jak powinna wyglądać tabela "zbrojmistrz"?
Jak wyświelić, nie wszystkie dostępne, a tylko te zakupione elementy z bazy danych?
Bardzo proszę o pomoc.

Z góry dziękuje.
Pozdrawiam serdecznie.
Mr_Popcorn

2 odpowiedzi

+1 głos
odpowiedź 20 lipca 2015 przez Magicone Nałogowiec (45,100 p.)

Przykładowe tabele:

users: [*id|nick|login|passwd]

zbrojmistrz: [*id, **uid, prop1, prop2]

legenda: * -> klucz podstawowy, ** -> klucz unikalny

relacje tworzymy w następujący sposób:

ALTER TABLE zbrojmistrz ADD FOREIGN KEY(uid) REFERENCES users(id)

i pobieranie prop1 i prop2 wygląda następująco:

SELECT zbrojmistrz.prop1 as prop1, zbrojmistrz.prop2 as prop2 FROM users LEFT JOIN zbrojmistrz ON zbrojmistrz.uid = users.id

chyba tyle :D

_

Co do kupionych towarów, pokaż, jak wygląda struktura tabeli - wtedy wszystko ci wyjaśnie :)

komentarz 20 lipca 2015 przez Boshi VIP (100,240 p.)

A gdzie ja napisałem, że  im mniej tym lepiej ?  ja odnosiłem się do postu Tnifey , bład że nie  oznaczyłem tego.

propozycja commandera wydaje się najrozsądniejsza wg mnie. Daje to największą elastyczność.

 

komentarz 20 lipca 2015 przez Tnifey Pasjonat (24,190 p.)
To jest bardzo nieoptymalne, ale naprostrze jakie może być :) Widzę, że teraz się zaczyna od wrzucenia na głęboką wodę :) Mr_Popcorn chciał poprostu, żeby mu działało. To że napiszecie że potrzeba jest użyć kluczy obcych, nie mówiąc do czego one służą i jak działają, tylko mówiąc krótko - Weź ten talizman, rzuciłem na niego urok działania - i gdy odpala ten "talizman" to działa, tylko nie wie jak i co dokłanie.
komentarz 20 lipca 2015 przez Boshi VIP (100,240 p.)
To już sobie doczyta na internecie.
komentarz 20 lipca 2015 przez Magicone Nałogowiec (45,100 p.)
Hm, innym rozwiązaniem jest użycie SELECT w SELECT, natomiast wątpię, czy będzie to lepszym rozwiązaniem, być może bardziej intuicyjnym :)
komentarz 20 lipca 2015 przez Comandeer Guru (606,240 p.)
Ale niewydajne jeszcze bardziej ;)

W PostgreSQL zamiast 3 tabel byłby typ array.
0 głosów
odpowiedź 22 lipca 2015 przez Mr Popcorn Bywalec (2,340 p.)

Na screenshotach widzicie zdjęcia moich tabel w bazie danych, oraz niby grę o którą się rozchodzi, statystyki miałyby być widoczne na każdej podstronie, tabela z brońmi wyciągnęłaby wszystkie dane z tabeli "weapons",  a widoczna byłaby w zakładcy np "zbrojmistrz", albo "sklep", a ostatnia tabela pokazywałaby, jaką broń mamy obecnie kupioną.

Bardzo proszę o instrukcję (o wyjaśnienie jak dziecku), jak krop po kroku zrobić, aby w zakładce "ekwipunek" widniała zakupiona broń od aktualnie zalogowanej osoby.
Z góry dziękuje.

 



Gdyby zdjęcia były za małe, to tu odnośniki do screenshotów:
http://i.imgur.com/hJYhV8r.png
http://i.imgur.com/I8Yo4bo.png

komentarz 23 lipca 2015 przez Comandeer Guru (606,240 p.)

Najłatwiej będzie zrobić trzecią tabelę equipment z dwoma polami: user i weapon. Będą one przechowywać id odpowiednio z tabeli userów i tabeli broni. Mając taką tabelę wiadomo jakie bronie ma user o danym id.

Jeśli chcesz pobrać taką broń wraz z danymi o niej należy zastosować JOIN w zapytaniu:

SELECT weapons.* FROM weapons JOIN equipment
ON weapons.wid = equipment.weapon
WHERE equipment.user = id_z_sesji

 

Podobne pytania

0 głosów
1 odpowiedź 1,941 wizyt
pytanie zadane 5 lutego 2018 w PHP przez Śwież4k Bywalec (2,570 p.)
0 głosów
1 odpowiedź 156 wizyt
pytanie zadane 12 listopada 2015 w SQL, bazy danych przez Piotrek Karasiński Obywatel (1,870 p.)
0 głosów
1 odpowiedź 3,763 wizyt

93,173 zapytań

142,184 odpowiedzi

321,967 komentarzy

62,499 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 1149p. - dia-Chann
  2. 1131p. - Łukasz Piwowar
  3. 1124p. - CC PL
  4. 1118p. - Łukasz Eckert
  5. 1097p. - Michal Drewniak
  6. 1081p. - Marcin Putra
  7. 1076p. - rucin93
  8. 1047p. - Piotr Aleksandrowicz
  9. 1000p. - ssynowiec
  10. 967p. - rafalszastok
  11. 947p. - Adrian Wieprzkowicz
  12. 842p. - Dawid128
  13. 826p. - Michał Telesz
  14. 819p. - Mariusz Fornal
  15. 814p. - Mikbac
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...