Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Moja pierwsza funkcja...
Forum PHP.pl > Forum > Przedszkole
pawel.ad
Moja pierwsza próba uproszczenia sobie życia i stworzenia funkci, więc proszę być delikatnym... ;-)

A więc mam coś takiego:
  1. function sum_pm($PM) {
  2.  
  3. $hundred = '100';
  4.  
  5. switch($PM) {
  6.  
  7. case 'sum_2PM':
  8. if($wiersz['sum_2PM'] > 0) {
  9. echo "<th>".$wiersz['sum_2PM']."&nbsp;-&nbsp;".$wiersz['sum_2PA']."&nbsp;(".round($wiersz['sum_2PM']/$wiersz['sum_2PA']*$hundred, 1)."%)</th>";
  10. }
  11. else echo "<th><p class=\"center\">-</p></th>";
  12. break;
  13.  
  14. case 'sum_3PM':
  15. if($wiersz['sum_3PA'] > 0) {
  16. echo "<th>".$wiersz['sum_3PM']."&nbsp;-&nbsp;".$wiersz['sum_3PA']."&nbsp;(".round($wiersz['sum_3PM']/$wiersz['sum_3PA']*$hundred, 1)."%)</th>";
  17. }
  18. else echo "<th><p class=\"center\">-</p></th>";
  19. break;
  20.  
  21. case 'sum_FT':
  22. if($wiersz['sum_FTA'] > 0) {
  23. echo "<th>".$wiersz['sum_FTM']."&nbsp;-&nbsp;".$wiersz['sum_FTA']."&nbsp;(".round($wiersz['sum_FTM']/$wiersz['sum_FTA']*$hundred, 1)."%)</th>";
  24. }
  25. else echo "<th><p class=\"center\">-</p></th>";
  26. break;
  27.  
  28. };
  29.  
  30. };
  31.  

ale:
  1. sum_pm("sum_2PA");

nie zwraca mi nic.
$wiersz['sum_2PM'] itp. to zmienne pobierane z bazy danych.

Jaki głupi błąd znowu popełniłem? smile.gif
wookieb
Przecież zmienna $wiersz w twojej funkcji jest pusta. Włącz pełne raportowanie błędów. Zreszta moderator niedługo prekieruje cie na odpowiedni temat.
pawel.ad
Nie jest pusta, tylko tu wkleiłem w taki sposób bo IMHO błąd leżał w konstrukcji funkcji.

  1. require "function.php";
  2.  
  3. $zapytanie = "SELECT
  4. SUM( `game_scores`.`PTS` ) AS sum_PTS,
  5. SUM( `game_scores`.`REB` ) AS sum_REB,
  6. SUM( `game_scores`.`AST` ) AS sum_AST,
  7. SUM( `game_scores`.`ST` ) AS sum_ST,
  8. SUM( `game_scores`.`BS` ) AS sum_BS,
  9. SUM( `game_scores`.`BA` ) AS sum_BA,
  10. SUM( `game_scores`.`2PM` ) AS sum_2PM,
  11. SUM( `game_scores`.`2PA` ) AS sum_2PA,
  12. SUM( `game_scores`.`3PM` ) AS sum_3PM,
  13. SUM( `game_scores`.`3PA` ) AS sum_3PA,
  14. SUM( `game_scores`.`FTM` ) AS sum_FTM,
  15. SUM( `game_scores`.`FTA` ) AS sum_FTA
  16. FROM `game_scores`
  17. INNER JOIN `games` ON `games`.`id` = `game_scores`.`game_id`
  18. WHERE `games`.`host_id` = (SELECT `players`.`team_id`FROM `players`WHERE `game_scores`.`player_id` = `players`.`id`)
  19. AND `games`.`id` = '$id'
  20. GROUP BY `games`.`host_id`";
  21.  
  22. $wynik = mysql_query($zapytanie)
  23. or die('Błąd zapytania o sumę statystyk gospodarzy.');
  24.  
  25. if(mysql_num_rows($wynik) > 0) {
  26.  
  27. $wiersz = mysql_fetch_array($wynik);
  28.  
  29. echo "<tfoot>
  30. <tr>
  31. <th>Suma</th>
  32. <th>".$wiersz['sum_PTS']."</th>
  33. <th>".$wiersz['sum_REB']."</th>
  34. <th>".$wiersz['sum_AST']."</th>
  35. <th>".$wiersz['sum_ST']."</th>
  36. <th>".$wiersz['sum_BS']."</th>
  37. <th>".$wiersz['sum_BA']."</th>";
  38.  
  39. sum_pm("sum_2PA");
  40.  
  41.  
  42. echo "</tr>
  43. </tfoot>";
  44.  
  45. };

I w tym przypadku
  1. sum_pm("sum_2PA")

nie zwraca mi nic.
wookieb
I chcesz się kłócić?
To wstaw sobie w swojej "pierwszej funkcji"
  1. print_r($wiersz);

Ale w twoim przypadku zobacz sobie "pierwszego" Nulla
  1. var_dump($wiersz);

Ale powtarzam WEWNĄTRZ funkcji
pawel.ad
Nie, nie chcę się kłócić, i sorry jeżeli tak to odebrałeś.

To w takim razie jak to zrobić dobrze?
wookieb
Przekazać jako drugi parametr zmienna $wiersz
pawel.ad
Obawiam się że nie nadążam...

Dodanie 2 atrybutu jako $wiersz nie pomogło, tj.:
  1. function sum_pm($PM, $wiersz) { ... }
  2. ...
  3. sum_pm("sum_2PA", $wiersz);


BTW. O jaki temat do "przekierowania" ci chodziło?

EDIT:
Próbowałem też dodać:
  1. global $wiersz;

ale nie pomogło.
wookieb
W switchu nie obsługujesz sum_2PA
http://forum.php.pl/index.php?showtopic=146215&hl=
pawel.ad
Racja...
Już wszystko działa.
Dzięki za wytrwałość i wyrozumiałość...

Jeszcze jedno pytanko tylko.
Lepiej dodać do funkcji:
  1. global $wiersz;

czy dodać drugi atrybut jako $wiersz:
  1. function sum_pm($PM, $wiersz) { ... }
  2. ...
  3. sum_pm("sum_2PA", $wiersz);
Wicepsik
Dodać drugi parametr.
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.