Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: JOIN - porównanie dwóch tabel i wyciągnięcie rekordu
Forum PHP.pl > Forum > Bazy danych > MySQL
benzulli
Witam

  1. SELECT newsy.*, id_kategorii FROM newsy JOIN kategorie ON newsy.id_kategorii = kategorie.id ORDER BY id DESC LIMIT 0,5


Witam

mam problem, mianowicie chciałbym wyciągnąć z tabeli kategorie rekord "tytul". Chodzi o to, aby był on kompatybilny z rekordem id_kategorii w tabeli newsy. Zastosowałem komendy jak powyżej i stanąłem w miejscu, bo gdy zmienię id kategorii w danym rekordzie to zamiast np. tej 1 pokazuje 4 (było 1, zmieniłem na 4 w kategorie i pokazuje 4 - wszystko jest ok). Chciałbym natomiast, aby serwer pokazywał nie id kategorii, lecz tytul kategorii. Kiedy wpiszę newsy.id_kategorii = kategorie.tytul to w ogóle nie wyświetla newsów.

Tabela kategorie składa się z :
1. id (1,2)
2. tytul (Ziołolecznictwo, Ogrodnictwo)

gothye
zmień :

  1. SELECT newsy.*, id_kategorii


na

SELECT newsy.*, id_kategorii , kategorie.*
b4rt3kk
  1. SELECT * FROM newsy JOIN kategorie ON newsy.id_kategorii = kategorie.id ORDER BY id DESC LIMIT 0,5


PS. Nie potrzebujesz przecież pobierać komórki, którą stosujesz potem jako warunek JOIN. Łączysz ze sobą dwie tabele, tak więc dając * otrzymasz wszystkie komórki z obu łączonych tabel.
benzulli
Nic to nie dało, obydwa sposoby. Problem jest taki, że chciałbym to zrobić używając jednej zmiennej w php.

  1. $query = mysql_query("SELECT newsy.*, id_kategorii FROM newsy JOIN kategorie ON newsy.id_kategorii = kategorie.id order by id desc limit 0,5");
  2. while($rekord = mysql_fetch_array($query)) { echo $rekord[1] $rekord[2]; itd... }


Ale ze mnie bambus - nie uwzględniłem tego, że te dwie tabele się łączą i z drugiej tabeli rekordy zapisują się po rekordach z pierwszej tabeli - zmieniłem jedynie id zmiennej w echo i działa smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.