Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> tablice array(); a LIMIT
SN@JPER^
post
Post #1





Grupa: Zarejestrowani
Postów: 266
Pomógł: 0
Dołączył: 4.01.2007
Skąd: Szczecin

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


Witam,

mam pewien kod:

  1. <?php
  2. $sql = "SELECT * FROM clubs WHERE premiership='1'";
  3. $query = @mysql_query($sql);
  4. $rows = @mysql_num_rows($query);
  5.  
  6. unset($team);
  7. $team = array();
  8.  
  9.  
  10. while($fetch = @mysql_fetch_array($query))
  11. {    
  12.    $id = htmlspecialchars(stripslashes($fetch['id']));
  13.    $club = htmlspecialchars(stripslashes($fetch['nazwa']));
  14.    $team[$club] = array('name'=>$club, 'm'=>0, 'w'=>0, 'r'=>0, 'p'=>0, 'br_p'=>0, 'br_m'=>0, 'stosunek'=>0, 'pkt'=>0);
  15. }
  16.    $ile_meczy = sql_rows("SELECT * FROM terminarz");
  17.    
  18.    $sql_match = "SELECT * FROM terminarz WHERE wynik <>':'";
  19.    $query_match = @mysql_query($sql_match);
  20. while($fetch_match = @mysql_fetch_array($query_match))
  21. {    
  22.    $id_gospodarz = htmlspecialchars(stripslashes($fetch_match['id_gospodarz']));
  23.    $id_gosc = htmlspecialchars(stripslashes($fetch_match['id_gosc']));
  24.    $wynik = htmlspecialchars(stripslashes($fetch_match['wynik']));
  25.    
  26.    $sql_nazwa_gospodarz = "SELECT nazwa FROM clubs WHERE id='".$id_gospodarz."'";
  27.    $query_nazwa_gospodarz = @mysql_query($sql_nazwa_gospodarz);
  28.    $fetch_nazwa_gospodarz = @mysql_fetch_array($query_nazwa_gospodarz);
  29.    $gospodarz = htmlspecialchars(stripslashes($fetch_nazwa_gospodarz['nazwa']));
  30.    
  31.    $sql_nazwa_gosc = "SELECT nazwa FROM clubs WHERE id='".$id_gosc."'";
  32.    $query_nazwa_gosc = @mysql_query($sql_nazwa_gosc);
  33.    $fetch_nazwa_gosc = @mysql_fetch_array($query_nazwa_gosc);
  34.    $gosc = htmlspecialchars(stripslashes($fetch_nazwa_gosc['nazwa']));
  35.    
  36.    $ex = explode(":", $wynik);
  37.    
  38.        if($ex[0]>$ex[1])
  39.        {
  40.                    
  41.                    $team[$gospodarz]['m']++;
  42.                    $team[$gospodarz]['w']++;
  43.                    $team[$gospodarz]['br_p'] += $ex[0];
  44.                    $team[$gospodarz]['br_m'] += $ex[1];
  45.                    $team[$gospodarz]['stosunek'] += ($ex[0] - $ex[1]);
  46.                    $team[$gospodarz]['pkt'] += 3;
  47.                    
  48.                    $team[$gosc]['m']++;
  49.                    $team[$gosc]['p']++;
  50.                    $team[$gosc]['br_p'] += $ex[1];
  51.                    $team[$gosc]['br_m'] += $ex[0];
  52.                    $team[$gosc]['stosunek'] += ($ex[1] - $ex[0]);
  53.        }
  54.        
  55.        elseif($ex[0]==$ex[1])
  56.        {
  57.                    $team[$gospodarz]['m']++;
  58.                    $team[$gospodarz]['r']++;
  59.                    $team[$gospodarz]['br_p'] += $ex[0];
  60.                    $team[$gospodarz]['br_m'] += $ex[1];
  61.                    $team[$gospodarz]['stosunek'] += ($ex[0] - $ex[1]);
  62.                    $team[$gospodarz]['pkt']++;
  63.  
  64.                    $team[$gosc]['m']++;
  65.                    $team[$gosc]['r']++;
  66.                    $team[$gosc]['br_p'] += $ex[1];
  67.                    $team[$gosc]['br_m'] += $ex[0];
  68.                    $team[$gosc]['stosunek'] += ($ex[0] - $ex[1]);
  69.                    $team[$gosc]['pkt']++;
  70.        }
  71.        
  72.        else
  73.        {
  74.                    
  75.                    $team[$gospodarz]['m']++;
  76.                    $team[$gospodarz]['p']++;
  77.                    $team[$gospodarz]['br_p'] += $ex[0];
  78.                    $team[$gospodarz]['br_m'] += $ex[1];
  79.                    $team[$gospodarz]['stosunek'] += ($ex[0] - $ex[1]);
  80.                    
  81.                    
  82.                    $team[$gosc]['m']++;
  83.                    $team[$gosc]['w']++;
  84.                    $team[$gosc]['br_p'] += $ex[1];
  85.                    $team[$gosc]['br_m'] += $ex[0];
  86.                    $team[$gosc]['stosunek'] += ($ex[1] - $ex[0]);
  87.                    $team[$gosc]['pkt'] += 3;
  88.        }
  89.    
  90.    
  91.  
  92. }
  93.  
  94.  
  95. $pkt = array();
  96. $stosunek = array();
  97. $name = array();
  98.  
  99. foreach($team as $value)
  100. {
  101.  $pkt[]=$value['pkt'];
  102.  $stosunek[]=$value['stosunek'];
  103.  $name[]=$value['name'];
  104. }
  105.  
  106. array_multisort($pkt, SORT_DESC, $stosunek, SORT_DESC, $name, SORT_ASC, $team);
  107.  
  108. ?>
  109.  
  110.  
  111.  
  112. <div class="mini_table">
  113.  <div class="mini_table_p">.p</div>
  114.  <div class="mini_table_druzyna">Drużyna</div>
  115.  <div class="mini_table_pkt">Pkt</div>
  116. </div>
  117.  
  118. <?php
  119.  
  120. $i;
  121. foreach($team as $value)
  122. {
  123. $i++;
  124.  
  125. if($i == "6")
  126. {
  127.  break;
  128. }
  129.  
  130.        if($i%2)
  131.        {
  132.          $styl="_01";
  133.        }
  134.        
  135.        else
  136.        {
  137.          $styl="_02";
  138.        }
  139.        
  140.        $sql_club = "SELECT nazwa FROM clubs WHERE id='".$id_club."'";
  141.        $query_club = @mysql_query($sql_club);
  142.        $fetch_club = @mysql_fetch_array($query_club);
  143.        
  144.        $club = htmlspecialchars(stripslashes($fetch_club['nazwa']));  
  145.        
  146.      
  147.        
  148. ?>
  149.  
  150.  
  151. <div class="mini_table_01">
  152.  <div class="mini_table_p"><?=$i?>.</div>
  153.  <div class="mini_table_druzyna"><?=$value['name']?></div>
  154.  <div class="mini_table_pkt"><?=$value['pkt']?></div>
  155. </div>
  156.  
  157. <?php
  158. }
  159.  
  160. ?>



aby wyświetlić tylko 5 wartości z tablicy posłużyłem się w foreach:

  1. <?php
  2. if($i == "6")
  3. {
  4.  break;
  5. }
  6. ?>


Teraz np. potrzebuje wyświetlić także wartość o numerze $i == 11, czyli poza limitem 5. W jaki sposób to osiągnąć, aby wyświetlić na samym końcu wartość o $i == 11, przy limicie 5?

1. Wartosc 1
2. Wartosc 2
3. Wartosc 3
4. Wartosc 4
5. Wartosc 5
----------
11. Wartosc 11
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
maniekl2
post
Post #2





Grupa: Zarejestrowani
Postów: 162
Pomógł: 29
Dołączył: 6.04.2008

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


Jeżeli kod odpowiedzialny za szukanie tego id będzie w pętli foreach() to niestety nie uda ci się wywołać elementu który jest dalej niż 6.
1.Wytłumacz po co dokładnie ten limit to może inaczej to wszytko skonstruujemy.
2. Pomyśl czy ten kod odpowiedzialny za szukanie musi być w tej pętli.

A jeżeli chodzi o ten array_keys to:

  1. <?php
  2. array_keys($team);
  3. ?>

przypisuje po kolei klucze tabeli $team.
Kluczem pierwszego elementu będzie 0, drugiego 1 itd.
Czyli jeżeli chcesz wyświetlić 11 element tablicy team wykonujesz ten kod:

  1. <?php
  2. $nowe=array_keys($team);
  3. $nowe['10']; //pokaże 11 element
  4. ?>
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 - 11:20