Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Rekordy z dwóch tabel w jednej funkcji
Bellum
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 2.03.2010
Skąd: ta pewność?

Ostrzeżenie: (0%)
-----


Witam otóż posiadam FORUM IBP3.
Dążę do tego by stworzyć stronę główną, która to zawiera menu z odpowiednimi subkategoriami z forum => każda subkategoria zawiera w sobie odpowiednio związane z nią tematy a więc jest aktywnym odnośnikiem => gdzie po kliknięciu wyświetla się lista tematów z danej kategorii; a że raczkuję w PHP być może nawet się czołgam, to proszę o porady.


  1. $mysql = "SELECT pid,post FROM posts WHERE topic_id IN(7)";
  2. $wykonaj = @mysql_query($mysql) or die('<br />Niepoprawny wiersz bądź kolumna<br />'.mysql_error());
  3. echo '<DIV ID="MENU"><dl id="menu0">';
  4. while ($wiersz = mysql_fetch_row($wykonaj))
  5. {
  6. echo '<dt>'. $wiersz[0] .'</dt><dd>'. $wiersz[1] .'</dd>';
  7. }
  8. echo '</dl></DIV>';


Funkcja wyświetla PID oraz POST, który sobie wybrałem, natomiast chciałbym by zamiast PID wyświetlany był odpowiedni tytuł danego postu, lecz znajduje się on w innej tabeli TOPICS => TITLE; Ja natomiast nie wiem w jaki sposób wyświetlić dane z dwóch tabel w jednej funkcji - to moje pytanie.

Pozdrawiam serdecznie


Ten post edytował Bellum 2.03.2010, 22:35:47
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Ponieważ powinieneś połączyć te posty z tematami, ale w warunku nie określasz, że posty mają być tylko z tych tematów już ograniczonych. Najlepiej jest połączyć posty z tematami po polu łaczącym i w warunku dodać, że interesują Cię tylko rekordy, gdzie kategoria ma określoną wartośc. To już się realizuje nie łaczeniem tabel poprzez przecinek, ale używając ON i wskazując po czym łączysz obie tabele.
A więc:
  1. SELECT t.title, p.post FROM posts p JOIN topics t ON p.title_id = t.id WHERE t.forum_id IN (7)
Zwróć uwagę na stosowanie aliasów (p oraz t). Używam ich by odróżnić kolumny w obu tabelach. W obu bowiem na bank jest kolumna ID i bez tego baza nie wiedziała by które id używam do łączenia. Przez alias wie, że t.id to id w tabeli topics, a dodatkowo, że forum_id ma wyszukać także w tej tabeli. Zaś pola ma z określonych tabel także wybierać poprzez sprawdzenie aliasu. Poza tym polecam Ci sprawdzić co powoduje użycie zamiast JOIN także LEFT JOIN oraz RIGHT JOIN. Myślę, że może Cię to zaciekawić.

Ten post edytował thek 3.03.2010, 09:29:57
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 19:21