Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php+MySQL] W jednej tabeli jest id a w drugiej nazwa
roobik
post 1.08.2008, 21:53:59
Post #1





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


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
Go to the top of the page
+Quote Post
ayeo
post 1.08.2008, 21:56:43
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


zrobić LEFT JOIN?


--------------------
Go to the top of the page
+Quote Post
roobik
post 1.08.2008, 22:15:20
Post #3





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


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...

Ten post edytował roobik 1.08.2008, 22:24:27
Go to the top of the page
+Quote Post
ayeo
post 1.08.2008, 22:26:25
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


Co z tego, że robisz JOINa jak nie pobierasz tego w SELECT?Poza tym musisz używać składni: tabela.pole.
Pozdrawiam!


--------------------
Go to the top of the page
+Quote Post
roobik
post 1.08.2008, 22:44:38
Post #5





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


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
Go to the top of the page
+Quote Post
KCG
post 1.08.2008, 22:59:47
Post #6





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

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


  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ź.


--------------------
9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..."
Go to the top of the page
+Quote Post
roobik
post 1.08.2008, 23:15:52
Post #7





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


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...
Go to the top of the page
+Quote Post
KCG
post 1.08.2008, 23:34:40
Post #8





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

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


ale wiesz, że nazwa działu jest przechowywana w kluczu 'nazwa', a nie 'kat'? Np. $row['nazwa'];


--------------------
9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..."
Go to the top of the page
+Quote Post
roobik
post 1.08.2008, 23:43:26
Post #9





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


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

Ten post edytował roobik 2.08.2008, 06:47:29
Go to the top of the page
+Quote Post
KCG
post 2.08.2008, 10:01:49
Post #10





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

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


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. ?>


--------------------
9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..."
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 02:43