Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Wyświetlenie nazw kategorii po ID
Forum PHP.pl > Forum > Przedszkole
Kshyhoo
Borykam się z błahym zapewne problemem. Mianowicie, pobieram z bazy dane poniższym zapytaniem:
  1. SELECT *
  2. FROM tutoriale
  3. LEFT JOIN kategorie
  4. ON (kategorie.kat_id=tutoriale.kat_kategoria)
  5. LIMIT $start, $na_strone

Wyświetlam te dane - ładnie dołącza mi w phpMyAdmin kolumnę kat_kategoria, ale chciałbym również wyświetlić kategorię słownie na stronie. Struktura bazy:
Kod
tutoriale:                         kategorie:
+--------+-----+------------+      +--------+---------------+
| tut_id | ... | tut_kat_id |      | kat_id | kat_kategoria |
+--------+-----+------------+      +--------+---------------+
|        |     |            |      |        |               |

gdzie tutoriale.tut_kat_id powiązany z kategorie.kat_id w relacji jeden do wielu
sadistic_son
  1. SELECT kategorie.kat_kategoria FROM kategorie , tutoriale WHERE tutoriale.tut_kat_id = kategorie.kat_id
Kshyhoo
A dane?
  1. $dane['kat_kategoria']

questionmark.gif To nie działa...
sadistic_son
Jeśli puścisz to w pętli while:
  1. $query="SELECT kategorie.kat_kategoria FROM kategorie , tutoriale WHERE tutoriale.tut_kat_id = kategorie.kat_id";
  2. $result=mysql_query($query);
  3. $num=mysql_num_rows($result);
  4. if($num>0){
  5. while($row=mysql_fetch_array($result,MYSQL_NUM)){
  6. echo $row[0];
  7. }
  8. }

To dane wyświetlasz jako $row[x] czyli w tym wypadku jako $row[0];
Kshyhoo
Może źle napisałem. Tym zapytaniem uzyskałem tylko same nazwy kategorii a ja chcę wyciągnąć wszystkie dane z tabeli tutoriale + dodatkowo nazwy kategorii z tabeli kategorie...
sadistic_son
No to kolego zmodyfikuj zapytanie o te kolumny ktore maja sie pojawiac.
  1. $query="SELECT tutoriale.tut_id , tutoriale.reszta_kolumn , kategorie.kat_id , kategorie.inne_dane , kategorie.kat_kategoria FROM kategorie , tutoriale WHERE tutoriale.tut_kat_id = kategorie.kat_id";
Potem wyswietlasz je kolejno jako $row[0] <-- tutoriale.tut_id, $row[1] <-- tutoriale.reszta_danych, $row[2] <--kategorie.hat_id itp. itd.
No troche wlasnej inwencji!
Kshyhoo
A gdybym chciał użyć funkcję SQL_CALC_FOUND_ROWS:
  1. SELECT SQL_CALC_FOUND_ROWS * FROM tutoriale LIMIT $start, $na_strone



EDIT: Taka kombinacja działa, dzięki na naprowadzenie...
  1. $wynik = mysql_query("
  2. SELECT SQL_CALC_FOUND_ROWS *
  3. FROM tutoriale
  4. LEFT JOIN kategorie
  5. ON (kat_id = tut_kat_id)
  6. LIMIT $start, $na_strone
  7. ");
  8. $rekordow = mysql_result(mysql_query("SELECT FOUND_ROWS()"),0);
  9.  
  10. $stron = ceil($rekordow/$na_strone);
  11. if ($s>$stron and $rekordow>0) {
  12. $start = ($stron-1)*$na_strone;
  13. $wynik = mysql_query("
  14. SELECT *
  15. FROM tutoriale
  16. LEFT JOIN kategorie
  17. ON (kat_id = tut_kat_id)
  18. LIMIT $start, $na_strone
  19. ");
  20. }
sadistic_son
Nie wiem. Temat dotyczył czego innego. Pomogły moje poprzednie posty?
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.