Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/mysql] problem z tabelą
Sadu2
post
Post #1





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

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


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?
Go to the top of the page
+Quote Post
Cienki1980
post
Post #2





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 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.


--------------------
404
Go to the top of the page
+Quote Post
Cezar708
post
Post #3





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


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"
Go to the top of the page
+Quote Post
Sadu2
post
Post #4





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

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


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.

Ten post edytował Sadu2 17.03.2008, 22:59:28
Go to the top of the page
+Quote Post
Cezar708
post
Post #5





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


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)
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 Aktualny czas: 21.08.2025 - 03:38