Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php+MySQL] W jednej tabeli jest id a w drugiej nazwa
Forum PHP.pl > Forum > Przedszkole
roobik
Witam!
Na poczatek szczerze mówiąc nie szukałem odpowiedzi na poniższy problem na naszym Forum - po prostu nie wiem czego (tzn jak) szukać sad.gif
Do rzeczy. W tabeli pierwszej są pola:
id - wiadomo
nazwa - nazwa działu (mniejsza o to)
W drugiej tabeli:
id - ...
kat - kategoria artów
tyt - tytuł arta
txt - oraz jego treść
lnk - link do źródła
i kilka innych
Zacznę od końca: co chcę uzyskać. W górnej belce po kolei:
nazwa strony (ok)
nazwa działu (nie ok)
tytuł arta (ok)
Więc w drugiej tabeli mam (załóżmy) trzy arty, po jednym na "kat".
"kat" to ta sama cyfra, co id w tabeli pierwszej. Jak zrobić, by zamiast cyfry wyświetlanych katalogów pojawiły się normalne ich nazwy?
Myślę, że nie zamieszałem... winksmiley.jpg
ayeo
zrobić LEFT JOIN?
roobik
Hm... Zrobiłem tak:
  1. <?php
  2. $zap_cat_name - "SELECT * FROM dzialy LEFT JOIN arty ON WHERE kat = '$id'";
  3. ?>

Niestety - nic... nawet nr sięnie wyświetla sad.gif Gdzie mam błąd?

//edit
  1. <?php
  2. $zap_cat_name - "SELECT * FROM dzialy LEFT JOIN kat ON arty WHERE kat = '$id'";
  3. ?>

też nic...
ayeo
Co z tego, że robisz JOINa jak nie pobierasz tego w SELECT?Poza tym musisz używać składni: tabela.pole.
Pozdrawiam!
roobik
Patrzyłem na przykłady - nie kumam ... zrobiłem tak :
  1. <?php
  2. $zap_cat_name - "SELECT dzialy.id, dzialy.title FROM dzialy LEFT JOIN arty.kat ON arty WHERE
     id = '$id'"
    ;
  3. ?>

i już w ogóle nie wiem o co kaman... sad.gif
KCG
  1. <?php
  2. $sql = 'SELECT d.*,p.`nazwa` FROM `druga_tabela` d LEFT JOIN `pierwsza_tabela` p ON p.`i
    d`=d.`kat` WHERE d.`id`='
    .$id;
  3. ?>

Sprawdź.
roobik
Obecnie mam tak:
  1. <?php
  2. $zap_cat_name = "SELECT d.*,p.nazwa FROM dzialy d LEFT JOIN arty p ON p.id=d.kat WHERE d.id='.$id'";
  3. ?>

sad.gif dalej nic...
KCG
ale wiesz, że nazwa działu jest przechowywana w kluczu 'nazwa', a nie 'kat'? Np. $row['nazwa'];
roobik
Okazało się zbyteczne rozwiązanie JOIN LEFT - zrobiłem po prostu tak:
  1. <?php
  2. $zap_name_cat = "SELECT * FROM dzialy WHERE id='$id' LIMIT 1";
  3. $wyn_name_cat = mysql_query($zap_name_cat);
  4. while($r = mysql_fetch_array($wyn_name_cat)) {
  5. $name_cat = $r['nazwa'];
  6. }
  7. ?>

a w belce dałem echo $name_cat;
smile.gif
KCG
Też tak można, ale wcześniej czy później będziesz musiał skumać łączenia tongue.gif
Jeśli wyciągasz tylko jeden rekord pętla jest zbędna:
  1. <?php
  2. $zap_name_cat = "SELECT * FROM dzialy WHERE id='$id' LIMIT 1";
  3. $wyn_name_cat = mysql_query($zap_name_cat);
  4. $r = mysql_fetch_array($wyn_name_cat);
  5. $name_cat = $r['nazwa'];
  6. ?>
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.