Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] pobieranie danych z 2 tabel
Forum PHP.pl > Forum > Przedszkole
Sadu2
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
kwiateusz
a id sie pokrywaja czyli id z d_id? bo jak obie tabele nie maja punktów wspólnych to nie ma szans...
Cienki1980
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 )
Sadu2
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?
crafter
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ść
Sadu2
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
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.