Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dane z dwóch tabel + wyswietlanie
miki_ok
post
Post #1





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 17.08.2003
Skąd: Nowy Targ

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


Czesc,
zawislem na niby banalnym zapytaniu :/
otoz mam dwie tabele: ogloszenia i kategorie

ogloszenia:

id | nazwa | kat |

kategorie:
id | nazwa |

Do pola "kat" w tabeli ogloszenia, chciałbym ładowac "id" kategorii.
i teraz: jak wyciągnąć i wyswietlić kategrię o id=1 gdy mam jedynkę w polu kat w tabeli "ogloszenia" ?

z gory dzieki za helpa,
pozdr,
m.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
Sh4dow
post
Post #2





Grupa: Zarejestrowani
Postów: 569
Pomógł: 0
Dołączył: 17.08.2003
Skąd: Dąbrowa Górnicza

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


jesli dobrze zrozumialem to wystarczy zwykly warunek
  1. SELECT o.*, k.nazwa AS nazwa_kategorii
  2. FROM ogloszenia AS o, kategorie AS k WHERE o.kat = k.id ORDER BY o.id

lub
  1. SELECT o.*, k.nazwa AS nazwa_kategorii
  2. FROM ogloszenia AS o LEFT JOIN kategorie AS k ON o.kat = k.id ORDER BY i.od
(IMG:http://forum.php.pl/style_emoticons/default/Rkingsmiley.png)

P.S. ale dziwnie koloruje i łamie ten znacznik sql (IMG:http://forum.php.pl/style_emoticons/default/blink.gif)
Go to the top of the page
+Quote Post
miki_ok
post
Post #3





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 17.08.2003
Skąd: Nowy Targ

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


Tak mialem, 1 przyklad, tylko teraz chcialbym wyswietlic obok siebie id z tabeli kategorie i id z kategorii ogloszenia...

da siem ?

probowalem tak: '.$wiersz['kategorie.id'].' '.$wiersz['ogloszenia.id'].'

ale nie działa :/
Go to the top of the page
+Quote Post
Sh4dow
post
Post #4





Grupa: Zarejestrowani
Postów: 569
Pomógł: 0
Dołączył: 17.08.2003
Skąd: Dąbrowa Górnicza

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


Nie tak nazwy masz takie jak nazwy pul, czyli bez kropek

  1. <?php
  2. echo $wiersz['kat'].' '.$wiersz['id'].' '.$wiersz['nazwa_kategorii'];
  3. ?>

z zapytania otrzymujesz taka tablice
id, nazwa, kat, nazwa_kategorii
pierwsze trzy pochodza z tablicy ogloszenia a ostatni pochodzi z tablicy kategorie i ma zmieniona nazwe na nazwa_kategorii

[Edit] dla wyjasnienia oba powyzsze zapytania SQL dadza taki sam wynik przy takich samych tablicach. Glowna tablica skad pobierane sa dane to tablica 'ogloszenia', dodatkowa kolumna jaka wyciagamy jest kolumna 'nazwa' z kolumny 'kategorie' ktorej zmienilismy nazwe na 'nazwa_kategorii' aby nie powstal konflikt z nazwa kolumny z tablicy 'ogloszenia'

Mam nadzieje ze wyjasnilem ci to wystarczajaco dokladnie (IMG:http://forum.php.pl/style_emoticons/default/Rkingsmiley.png)

Ten post edytował Sh4dow 8.09.2005, 12:42:22
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




musisz uzyc aliasów dla id, bo dwa takie same pola w select ie moga byc:
  1. SELECT o.id oid, k.id kid, k.nazwa AS nazwa_kategorii
  2. FROM ogloszenia AS o, kategorie AS k WHERE o.kat = k.id ORDER BY o.id
no ipotem
$wiersz['kid'].' '.$wiersz['oid'].'
Go to the top of the page
+Quote Post
miki_ok
post
Post #6





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 17.08.2003
Skąd: Nowy Targ

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


@nospor: dzieki, niby wszystko ok, a jednak zapytanie sie sypie :/

ułożyłem tak:
  1. SELECT o.id oid, k.id kid, k.nazwa AS nazwa_kategorii
  2. FROM ogloszenia AS o, kategorie AS k WHERE 1 AND o.id LIKE '$nr'

$nr to zmienna z url'a
(w tym przyp. ==3)

jako wynik wywala mi 4 rekordy a mam tylko jedno pole id wartosci 3 :/

?
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Ale przecież te ID to jest typu int? Jesli nie to zrób to na int i wówczas:
  1. <?php
  2.  
  3. $sql = "SELECT o.id oid, k.id kid, k.nazwa AS nazwa_kategorii
  4. FROM ogloszenia
  5. AS o, kategorie AS k WHERE o.id = $nr";
  6.  
  7. ?>


a sorki, ale zjadles polaczenie:
  1. <?php
  2.  
  3. $sql = "SELECT o.id oid, k.id kid, k.nazwa AS nazwa_kategorii
  4. FROM ogloszenia
  5. AS o, kategorie AS k WHERE o.kat = k.id and o.id = $nr";
  6.  
  7. ?>
Go to the top of the page
+Quote Post
miki_ok
post
Post #8





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 17.08.2003
Skąd: Nowy Targ

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


nospor,
nic z tego, tym razem wywala 5 rekordów :/ (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

o, a w tabeli kategorie, mam 5 kategorii... (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?



miki: wkleiłem, dokładnie jak napisałeś, to z tym połączeniem i coś sie dalej sypie ...
nospor: orajciu, ale co się sypie? jakies errory?
miki: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in...
phpmyadmin mowi, ze: #1054 - Unknown column 'o.kat' in 'where clause'


Ten post edytował miki_ok 8.09.2005, 13:48:59
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




komunikat glosi ze tabeli ogloszenia nie ma pola 'kat'. Masz takie pole? Pokaz dokladnie to zapytanie co zrobiles po mojemu
Go to the top of the page
+Quote Post
miki_ok
post
Post #10





Grupa: Zarejestrowani
Postów: 88
Pomógł: 0
Dołączył: 17.08.2003
Skąd: Nowy Targ

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


hula, dzięki piękne :* (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

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: 24.12.2025 - 21:12