Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapytanie - JOIN czy coś...
Rafiki23
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 13.07.2007

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


Witam,

Mam pewien problem... gdyż nie wiem jak mam połączyć zapytania SQL w jedno (obecnie baza mi się strasznie krzaczy z powodu bardzo wielu zapytań) myślałem o JOINie, ale nie mam pomysłu jak go użyć, a jak już jest, to niestety nie idzie...

A więc tak. Mam dwie tabele.

- wyniki
MeczID | SezonID | LigaID | MeczData | GospodarzID | GoscID | BramkiGospodarz | BramkiGosc

- bramki
ID | MeczID | LigaID | SezonID | Pilkarz | DruzynaID | Minuta

Teraz robiłem to tak :
Pobierałem wyniki z jakiegoś zakresu dat w danej lidze, później jak wyświetlałem wierszami wyniki, to robiłem zapytanie WHERE MeczID = '$mecz' AND DruzynaID = '$data[GospodarzID]' i wyświetlałem strzelców goli gospodarzy.
To samo robiłem dla gosci. Czyli do jednego meczu robiłem dodatkowo 2 zapytania... :/ A jak meczów było np na stronie 10, to robiłem 20 zapytań + zapytanie o wyniki.

Dlatego mam pytanie o pomoc... jak to zapytanie skonstruować i czy jest taka możliwość, żeby zrobić to w jednym zapytaniu i dopiero jakoś to w skrypcie poukładać ?

Z góry dziękuję za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Rafiki23 8.09.2008, 22:53:02
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Rafiki23
post
Post #2





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 13.07.2007

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


Dzięki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Dzisiaj to przetestuje, coś podobnego spróbuję zrobić no i zobaczymy czy zadziała, jak nie to pokombinuje dalej (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Kombinowałem no i nie idzie... :/ Pokazuje mi się nadal tyle meczów ile mam strzelców. Może ktos znajdzie rozwiązanie? Wydaje mi się że wszystko jest ok...

  1. $get_matches1 = mysql_query("SELECT w.MeczID as id,
  2. w.SezonID as SezonID,
  3. w.LigaID as LigaID,
  4. w.MeczData as data,
  5. w.MeczGodzina as godzina,
  6. w.KolejkaMecz as kolejka,
  7. (SELECT d.DruzynaPelnaNazwa from druzyna d WHERE d.DruzynaID = w.GospodarzID) AS hometeam,
  8. (SELECT d.DruzynaPelnaNazwa from druzyna d WHERE d.DruzynaID = w.GoscID) AS awayteam,
  9. w.GospodarzID as team_a_ID,
  10. w.GoscID as team_b_ID,
  11. w.BramkiGospodarz as goals_home,
  12. w.BramkiGosc as goals_away,
  13. w.MeczUwagi as uwagi,
  14. b.MeczID as SMeczID,
  15. b.Pilkarz as Pilkarz,
  16. b.DruzynaID as SDruzynaID
  17. FROM mecze_$LigaID w
  18. LEFT JOIN gole b ON w.MeczID = b.MeczID
  19. AND w.LigaID = b.LigaID
  20. WHERE (
  21. w.MeczData
  22. BETWEEN '$minus2dni'
  23. AND '$plus3dni'
  24. )
  25. AND w.LigaID = '$LigaID'
  26. AND w.SezonID = '$SezonID' ORDER by w.MeczData ASC, w.MeczGodzina ASC",$lacz) or die(mysql_error());
  27.  
  28.  
  29. if(mysql_num_rows($get_matches1) <= 1)
  30.        {
  31.            echo "<table>";
  32.        }
  33.        else
  34.        {
  35.                              echo"<div align=\"center\">";?>
  36.              <center>
  37.            <br><table border="0" cellspacing="1" width="95%">
  38.            <?
  39.  
  40.            $i = 0;
  41.            $temp = '';
  42.            $ja = 0;
  43.            $tempja = '';
  44.  
  45.  
  46.            while($data = mysql_fetch_array($get_matches1))
  47.            {
  48.                if($i == 0)
  49.                {
  50.  
  51.  
  52.                  ?>
  53.              <tr>
  54.                <td width="100%" colspan="5"> <b><font size="2"><?php echo"$data[data]";?> 
  55.                  -  Kolejka nr <?php echo"$data[kolejka]";?></font></b></td>
  56.              </tr>
  57. <?php
  58.                }
  59.  
  60.                if($data['data'] != "$temp" && $i > 0)
  61.                {
  62. ?>
  63.              <tr>
  64.                <td width="100%" colspan="5"> <b><font size="2"><?php echo"$data[data]";?> 
  65.                  -  Kolejka nr <?php echo"$data[kolejka]";?></font></b></td>
  66.              </tr>
  67. <?php
  68.                }
  69.  
  70.  
  71.                if($ja == 0)
  72.                {
  73.  
  74.  
  75. ?>
  76. <tr>
  77.                  <td width="10%" align="center"><?php echo"$data[godzina]";?></td>
  78.                  <td width="37%"><b> <?php echo"$data[hometeam]";?></b></td>
  79.                  <td width="3%" align="center">-</td>
  80.                  <td width="37%"><b> <?php echo"$data[awayteam]";?></b></td>
  81.                  <td width="13%">
  82. <?php
  83.                if(!is_null($data['goals_home']))
  84.                    echo"<p align=\"center\"><b>$data[goals_home]: $data[goals_away]</b>";
  85. ?>
  86.                </td></tr>
  87.  
  88. <?php
  89.  
  90.  
  91.            if($data['uwagi']==''){}
  92.            else {
  93.  
  94. ?>
  95.              <tr>
  96.                <td width="100%" align="center" colspan="5">
  97.                <p align="left"> <i><font size="1"><?php echo"$data[uwagi]"; ?></font></i></td>
  98.              </tr>
  99. <?php
  100.                }}
  101.  
  102.                if($data['id'] == "$tempja" && $ja > 0)
  103.                {
  104. ?>
  105. <tr>
  106.                  <td width="10%" align="center"><?php echo"$data[godzina]";?></td>
  107.                  <td width="37%"><b> <?php echo"$data[hometeam]";?></b></td>
  108.                  <td width="3%" align="center">-</td>
  109.                  <td width="37%"><b> <?php echo"$data[awayteam]";?></b></td>
  110.                  <td width="13%">
  111. <?php
  112.                if(!is_null($data['goals_home']))
  113.                    echo"<p align=\"center\"><b>$data[goals_home]: $data[goals_away]</b>";
  114. ?>
  115.                </td></tr>
  116. <?php
  117.  
  118.  
  119.  
  120.            if($data['uwagi']==''){}
  121.            else {
  122.  
  123. ?>
  124.              <tr>
  125.                <td width="100%" align="center" colspan="5">
  126.                <p align="left"> <i><font size="1"><?php echo"$data[uwagi]"; ?></font></i></td>
  127.              </tr>
  128. <?php
  129.               }
  130.                $tempja = "$data[id]";
  131.  
  132.                $ja++;
  133.  
  134.                }
  135.  
  136.                $temp = "$data[data]";
  137.  
  138.                $i++;
  139.            }
  140.        }
  141.  
  142.        mysql_free_result($get_matches1);


Ten post edytował Rafiki23 10.09.2008, 13:52:59
Go to the top of the page
+Quote Post
JoShiMa
post
Post #3





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


Cytat(Rafiki23 @ 10.09.2008, 14:52:29 ) *
Kombinowałem no i nie idzie... :/ Pokazuje mi się nadal tyle meczów ile mam strzelców. Może ktos znajdzie rozwiązanie? Wydaje mi się że wszystko jest ok...


Przecież pokazałam Ci czarno na białym że tyle meczów Ci pokaże. Dopiero analizując w pętli te rekordy możesz obrobić te dane. rozdzielając info o meczach i o strzelcach.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 00:34