Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/mysql] problem z tabelą
Forum PHP.pl > Forum > Przedszkole
Sadu2
Witam,
Mam na stronie tabele piłkarską oraz funkcje do tego:

  1. <?php
  2. function mini_tabela($t_id, $ile='20', $d_id) {
  3. $q = "SELECT druzyna.d_nazwa, druzyna.d_tabela, wyniki.w_pkt, wyniki.w_gole, wyniki.w_stracone FROM druzyna LEFT JOIN wyniki ON d_id = w_druzy
    na ORDER by w_pkt DESC LIMIT 0,$ile"
    ; 
  4.  $query2 = mysql_query($q) or die (mysql_error());
  5. while($db2 = mysql_fetch_array($query2)) {
  6. $d++;
  7.  echo "<tr><td bgcolor=\"#ccffff\">$d</td><td bgcolor=\"#ccffff\" id=\"t_$db2[d_id]\"><span style=\"color: black;\"><small>".pogrubienie($db2[d_nazwa])."</small></span>";
  8.  echo "</td><td bgcolor=\"#ccffff\"><center><small>$db2[w_pkt]</small></center></td><td bgcolor=\"#ccffff\"><center><small>$db2[w_gole]:$db2[w_stracone]</small></center></td></tr>";
  9. }
  10.  
  11. }
  12. ?>


Wywołuje ją za pomocą:

  1. <?php
  2. // Id tabeli, LP druzyn, Team ID
  3. mini_tabela('21', '30', '193');
  4. ?>


W mysql mam:

###druzyna###
d_id, d_nazwa,d_tabela, d_logo

###tabela###
t_id, t_nazwa

Niestety w wyniku wyświetlają się wszystkie druzyny z tabel 21 oraz 22. Chciałbym wyświetlić druzyny tylko z d_tabela = 21. W czym tkwi problem?
Cienki1980
Jeżeli dobrze widzę to problem polega na tym, że do zapytania nie przekazujesz $t_id.
Uwzględnij ja w zapytaniu w warunku WHERE i powinno być lepiej.
Cezar708
dodaj do zapytania odpowiedni warunek jeszcze

  1. SELECT druzyna.d_nazwa, druzyna.d_tabela, wyniki.w_pkt, wyniki.w_gole, wyniki.w_stracone FROM druzyna LEFT JOIN wyniki ON (d_id = w_druzyna AND d_tabela=$t_id) ORDER BY w_pkt DESC LIMIT 0 ,$ile"
Sadu2
Jest o wiele lepiej niż było. Tylko teraz dostaje w wyniku:

druzyny z t_id = 21
druzyny z t_id = 22

uporządkowane według punktów. A co zrobić zeby tą jedną tabele pokazywało. Dodać WHERE do zapytania?

EDIT:

Tak, dodać where smile.gif

  1. <?php
  2. $q = "SELECT druzyna.d_nazwa, druzyna.d_tabela, wyniki.w_pkt, wyniki.w_gole, wyniki.w_stracone FROM druzyna LEFT JOIN wyniki ON (d_id = w_druzyna AND d_tabela=$t_id) WHERE d_tabela = $t_id ORDER by w_pkt DESC LIMIT 0,$ile ";
  3. ?>


Dziękuje.
Cezar708
Cytat(Sadu2 @ 17.03.2008, 22:55:50 ) *
Tak, dodać where smile.gif

  1. <?php
  2. $q = "SELECT druzyna.d_nazwa, druzyna.d_tabela, wyniki.w_pkt, wyniki.w_gole, wyniki.w_stracone FROM druzyna LEFT JOIN wyniki ON (d_id = w_druzyna AND d_tabela=$t_id) WHERE d_tabela = $t_id ORDER by w_pkt DESC LIMIT 0,$ile ";
  3. ?>


Dziękuje.



to w takim razie zamień (d_id = w_druzyna AND d_tabela=$t_id) na (d_id = w_druzyna), niepotrzebnie masz dwukrotnie sprawdzanie tego samego warunku (drugi raz w WHERE)
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.