ForumCała strona

Nawigacja

Aktualnie online

Gości online: 14

Użytkowników online: 0

Łącznie użytkowników: 25,393
Najnowszy użytkownik: Assassin

Logowanie

Nazwa użytkownika

Hasło



Zarejestruj się

Odzyskaj hasło

Shoutbox

Musisz zalogować się, aby móc dodać wiadomość.

JazOOn
06.12.2024 23:45:46
Amen

Zbigniew@
17.11.2024 11:33:24
Nie ten grzeszy kto pije, ale ten, kto się nie upije.

JazOOn
16.11.2024 20:46:18
tja

Zbigniew@
15.11.2024 18:58:17
Kto pije, ten nie bije.

JazOOn
31.10.2024 20:49:47
Kto pije?

Pobierz nową wersję
Pobierz podręcznik
Zobacz inne oficjalne Supporty
Statystyki supportu
PHP-Fuson PL na Facebooku

RSS

Polecamy hosting SferaHost.pl

Zobacz temat

 Drukuj temat
Wyjaśnienie działania zapytanie do bazy danych MySQL
Kshyhoo
Mam pewien problem, nie wiem mianowicie, o co biega w strukturze tabel. Może ktoś mądrzejszy mi wytłumaczyć:
Pobierz kod źródłowy  Rozwiń Kod źródłowy

Pobierz kod źródłowy  Rozwiń Kod źródłowy

Chodzi mi najbardziej o te "ta", "tac"...


PW od moderatora:
  1. Przeniesienie tematu - Pieka 27.01 - 22:04
  2. Zmiana nazwy tematu - hoopak 27.01 - 22:04

Edytowane przez Pieka dnia 27.01.2010 22:16:44
Copyright (C) by Kshyhoo (R)
Wszystkie prawa zastrzeżone.
 
www.kshyhoo.eu
Wścibski Gość
Dodany dnia 22.12.2024 21:30:28
Pan Kontekstualny

Postów: n^x
Data rejestracji: Zawsze

Polecamy hosting SferaHost.pl
IP: localhost  
medyq
Te "ta" czy "tc" są unikalnymi nazwami dla tabel jakie wykorzystujesz w danym zapytaniu żeby posklejać kilka tabel do kupy w jednym resulcie w danej chwili. Jest kilka warunków które trzeba spełnić żeby tego użyć. Po pierwsze skrótowa nazwa tabeli któej użyjesz po SELECT musi zostać powtórzona w daleszej części zapytania po oryginalnej nazwie tabeli. Czyli jak wymyśliłeś (tak te ksróty są całkowicie dowolne) sobie że chcesz wyjąć artykuł z bazy (jak w pierszym przykładzie) to musi wyglądać to tak:

Pobierz kod źródłowy  Rozwiń Kod źródłowy
Gdzie w miejsce xxx i yyy w kodzie dajesz swoje nazwy - najlepiej skrótem 2-3 literowym całkowicie dowolnym.

Pamiętaj że zapis xxx.* oznacza wyjęcie wszystkich danych z tabeli xxx a zapis xxx.user_id wyjmie tylko user_id z tabeli xxx. Nie zapomnij też zdefiniować w dalszej części co to jest xxx czyli np
Pobierz kod źródłowy  Rozwiń Kod źródłowy


Druga sprawa to kolumny które przyrównujesz do siebie po każdej akcji "sklejenia" czyli np:
Pobierz kod źródłowy  Rozwiń Kod źródłowy
muszą odnosić się do tego samego czyli w obu przypadkach jest to id_usera które w obu tabelach figuruje pod różnymi nazwami kolumn.

Używasz tego żeby jak wspomniałem wyjąc/wyszukać w bazie wielu danych ze sobą powiązanych. Drugi przykład pasuje bardzo dobrze do tego wyjaśnienia. Chcesz wiedzieć zarówno o artykule jak i wiedzieć kto go napisał. Domyślnie w tabeli artykułów wiesz tylko jakie jest id autora i pisząc dla pierwszego cytatu powyżej wynika z $data['user_name'] nic nie otrzymasz bo zapytanie nie wie jakie jest user_name nawet nie wie skąd to wyjąc :P

Dzięki połączeniu tabel przyrównasz łatwo_id autora do user_id i dzięki temu będziesz wiedział jakie jest user_name czyli przykład drugi. Takie akcje łatwo optymalizują zapytania do bazy gdyż zamiast np szukać czegoś w jakiejś tabeli a dla znalezionego wyniku szukać czegoś w innej to zapisujesz to tak jak powyżej dzięki czemu unikasz często pętli i wielokrotnych zapytań.

Nie umiem tłumaczyć - wole operować na przykładach ^^ jak masz pytania to pisz.
Edytowane przez medyq dnia 28.01.2010 09:02:53
 
Kshyhoo
Dzięki za wytłumaczenie, choć już wczoraj znalazłem co nieco na ten temat.

Wiadomość doklejona:
OK, więc jeżeli mam tabelę "artykuly", gdzie przechowuję tylko id kategorii: "arty_kat" i tabelę "kategorie" z "kat_id" i nazwą kategorii "kat_kategoria", to jak zapytać bazę, żeby wyświetliło mi np. tytuł artykułu i pełną nazwę kategorii?
Pobierz kod źródłowy  Rozwiń Kod źródłowy MYSQL

Czy tak? Czy mogę użyć takiego kodu do stronicowania?
Pobierz kod źródłowy  Rozwiń Kod źródłowy MYSQL

??
Edytowane przez Kshyhoo dnia 28.01.2010 12:47:54
Copyright (C) by Kshyhoo (R)
Wszystkie prawa zastrzeżone.
 
www.kshyhoo.eu
bartek124
Obie tabele musisz czymś złączyć. Po
Pobierz kod źródłowy  Rozwiń Kod źródłowy
wstaw
Pobierz kod źródłowy  Rozwiń Kod źródłowy

userbar_bartek124_net.png mw.gif Nie pomagam na komunikatorach oraz PW!
 
www.bartek124.net
Przejdź do forum:
Created by Arox Copyright (C) 2004
Copyright (C) 2004 - 2018 Ekipa PHP-Fusion.pl