Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql] pobieranie danych z 2 tabel, jw
Sadu2
post 12.06.2007, 22:36:28
Post #1





Grupa: Zarejestrowani
Postów: 229
Pomógł: 13
Dołączył: 31.05.2007

Ostrzeżenie: (10%)
X----


Witam,
Mam dwie tabele:

druzyna
d_id | d_nazwa |


herby
id | h_id


W 'h_id' mam ścieżki obrazków (np. gfx/herby.plik.jpg, itd) i teraz chciałbym aby druzynie o id 'd_id' przypisywało odpowiednie 'h_id' z herby, i żeby oczywiście pokazał sie obrazek na stronie. W jaki sposób moge to zrobić?
Pozdrawiam
Go to the top of the page
+Quote Post
kwiateusz
post 12.06.2007, 22:50:19
Post #2


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




a id sie pokrywaja czyli id z d_id? bo jak obie tabele nie maja punktów wspólnych to nie ma szans...
Go to the top of the page
+Quote Post
Cienki1980
post 12.06.2007, 22:50:58
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Jeżeli dobrze rozumiem to kolumna d_id w tabeli druzyna i id w tabeli herby to klucze główne ( auto_increment ). Jeżeli tak jest to zrób powiązanie między tymi tabelami.

Jeżeli będzie to odwzorowanie 1 do 1 ( jedna drużyna - jeden herb ) wystarczy jak dodasz pole h_id do tabeli druzyna i wpiszesz tam odpowiednią wartość z pola id z tabeli herby.

Jeżeli jednak jest to odwzorowanie 1 do wielu ( jedna drużyna - wiele herbów ) najlepszym wyjściem będzie stworzenie trzeciej tabeli która będzie przechowywała d_id ( z tabeli druzyna ) i id ( z tabeli herby )


--------------------
404
Go to the top of the page
+Quote Post
Sadu2
post 12.06.2007, 22:59:25
Post #4





Grupa: Zarejestrowani
Postów: 229
Pomógł: 13
Dołączył: 31.05.2007

Ostrzeżenie: (10%)
X----


Cytat
Jeżeli dobrze rozumiem to kolumna d_id w tabeli druzyna i id w tabeli herby to klucze główne ( auto_increment ). Jeżeli tak jest to zrób powiązanie między tymi tabelami.

Jeżeli będzie to odwzorowanie 1 do 1 ( jedna drużyna - jeden herb ) wystarczy jak dodasz pole h_id do tabeli druzyna i wpiszesz tam odpowiednią wartość z pola id z tabeli herby.


Wstawiłem do 'druzyna' pole 'h_id' i ma takie samo id jak 'd_id'. Czy dobrze was zrozumiałem?
Go to the top of the page
+Quote Post
crafter
post 12.06.2007, 22:59:55
Post #5





Grupa: Zarejestrowani
Postów: 72
Pomógł: 2
Dołączył: 14.02.2007

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


a nie lepiej ci w jednej tabeli to wszystko wsadzic d_id, d_nazwa, d_herb
no ale ok
zakładam że d_id jest kluczem łączącym h_id

zapytanie:

$zapytanie = mysql_query("select d.d_nazwa, h.h_id from druzyna d, herby h
where d.d_id = h.h_id");

tym zapytaniem pobierzesz herby należące do każdej z drużyn

i dajesz
while ($wiersz = mysql_fech_object($zapytanie)
{
///i wyświetlasz
echo $wiersz->d_nazwa. ' - <img src="'.$wiersz->h_id.'">';
}

jakoś tak pisze to z pamięci więc proszę o wyrozumiałość
Go to the top of the page
+Quote Post
Sadu2
post 12.06.2007, 23:09:34
Post #6





Grupa: Zarejestrowani
Postów: 229
Pomógł: 13
Dołączył: 31.05.2007

Ostrzeżenie: (10%)
X----


Chyba to bedzie to biggrin.gif Ale nie wiem czy dobrze napisałem ten kod:

  1. <?php
  2. $query = mysql_query("SELECT d.d_nazwa, h.d_logo FROM druzyna d, herby h
  3. WHERE d.d_id = h.d_logo");
  4. $result = mysql_query($query) or die (mysql_error());
  5. while ($row = mysql_fetch_object($result))
  6. {
  7.  
  8. echo "<td width="175" colspan="2" height="120" style='border: 0px solid'  valign="top"><center><img src=".$row->d_logo" width="60" alt=""></CENTER></TD>";
  9. echo "<td colspan="2" width="120"></td>";
  10. echo "<td width="175" colspan="2" height="120" style='border: 0px solid' valign="top"><center><img src=".$row->d_logo" width="60" alt=""></CENTER></td></TR>";
  11. //KONIEC
  12. }
  13. ?>


Chce wyświetlać tylko herby klubów.

EDIT: na stronie gdzie maja ukazać się herby pojawiło sie:

Zapytanie było puste

//EDIT:

Poradzilem sobie juz z tym:

  1. <?php
  2. $query = mysql_query("SELECT * FROM zawodnicy WHERE z_druzyna = '$db[s_t1]' or z_druzyna = '$db[s_t2]' ORDER by z_numer");
  3. while($dbz = mysql_fetch_array($query)) {
  4. $zawodnicy[$dbz[z_id]] = to_utf8($dbz[z_nazwa]);
  5. }
  6.  
  7.  
  8. $select = mysql_query("SELECT * FROM druzyna WHERE d_id = '$db[s_t1]'") or die(mysql_error());
  9. $db2 = mysql_fetch_array($select);
  10. $select2 = mysql_query("SELECT * FROM druzyna WHERE d_id = '$db[s_t2]'") or die(mysql_error());
  11. $db3 = mysql_fetch_array($select2);
  12.  
  13. echo "<td width="175" colspan="2" height="120" style='border: 0px solid' valign="top"><center><img src="$db2[d_logo]" width="60" alt=""></CENTER></TD>";
  14. echo "<td colspan="2" width="120"></td>";
  15. echo "<td width="175" colspan="2" height="120" style='border: 0px solid' valign="top"><center><img src="$db3[d_logo]" width="60" alt=""></CENTER></td></TR>";
  16. //KONIEC
  17. ?>


Wszystko działa jak nalezy. Dziękuje za pomoc.
Pozdrawiam

Ten post edytował Sadu2 13.06.2007, 12:54:04
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: 19.07.2025 - 00:28