Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Branie do średniej oceny poprawionej jeżeli jest
kuba_pilach
post
Post #1





Grupa: Zarejestrowani
Postów: 224
Pomógł: 3
Dołączył: 24.12.2010

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


Witam, mam pobieram średnią ocen z danego przedmiotu i zaokrąglam ją:
  1. $wynik = mysql_query("SELECT NAZWA, GROUP_CONCAT(Oceny.OCENA) AS lista_ocen, AVG(Oceny.OCENA) AS srednia FROM Oceny AS Oceny LEFT JOIN Przedmiot AS Przedmiot ON Oceny.ID_PRZEDMIOTU = Przedmiot.ID WHERE Oceny.ID_USERA = '$z[ID]' GROUP BY Oceny.ID_PRZEDMIOTU")
  2. or die(mysql_error());
  3.  
  4. /*
  5. wywietlamy wyniki, sprawdzamy,
  6. czy zapytanie zwróciło wartoć większą od 0
  7. */
  8. ?>
  9. <ul>
  10. <div id="form_container">
  11. <div>
  12. <?php
  13. if(mysql_num_rows($wynik) > 0) {
  14. /* jeżeli wynik jest pozytywny, to wywietlamy dane */
  15. echo "<br />";
  16. echo "<table cellpadding=\"2\" border=1>";
  17. echo "<tr>";
  18. echo "<td>Przedmiot</td>";
  19. echo "<td>Oceny</td>";
  20. echo "<td>Srednia</td>";
  21. echo "</tr>";
  22. while($r = mysql_fetch_assoc($wynik)) {
  23. echo "<tr>";
  24. echo "<td>".$r['NAZWA']."</td>";
  25. echo "<td>".$r['lista_ocen']."</td>";
  26. $r['srednia'] = round($r['srednia'], 2);
  27. echo "<td>".$r['srednia']."</td>";

I to już mam prawidłowo... Ale dodałem możliwość wpisywania z / znacznikiem poprawienia, więc pytanie moje jest takie:
Jak sprawdzić, czy w każdej pojedynczej jest druga ocena podana oddzielona znakiem /, a jeżeli jest, to brać tą drugą do liczenia średniej... Jest takie coś możliwe? Dzięki z góry!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kefirek
post
Post #2





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


  1. while($r = mysql_fetch_assoc($wynik)) {
  2. $tab_ocen = explode(",", $r['lista_ocen']);
  3.  
  4. $ile = count($tab_ocen);
  5.  
  6. $avg = 0;
  7.  
  8. for ($i=0; $i<$ile; ++$i) {
  9. $ocena = array();
  10. if(strpos($tab_ocen[$i], '/')){
  11.  
  12. $ocena = explode("/", $tab_ocen[$i]);
  13. $avg += $ocena[1];
  14.  
  15. } else {
  16.  
  17. $avg += $tab_ocen[$i];
  18.  
  19. }
  20.  
  21. }
  22.  
  23. echo round($avg / $ile , 2);
  24.  
  25. }


Ten post edytował kefirek 13.03.2011, 16:20:11
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: 8.10.2025 - 08:14