Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Obliczanie średniej i odchylenia standardowego
damianprz
post
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 26.08.2009
Skąd: Zamojsce

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


(IMG:http://images48.fotosik.pl/188/36eb6354103b063bm.jpg)
SCREEN

Na screenie widać prosty schemat tabeli w bazie danych
Na dole struktura a na górze rekordy
Mamy 8 dni i 4 produkty dla których trzeba policzyć Popyt średni i Odchylenie Standardowe

Kolega proponuje tak obliczać Pśr i OS
Cytat("Norbert")
$pytanko="SELECT popyt_klej FROM popyt";
$rezultat = mysql_query($pytanko)
or die("Błąd zapytania");


$tablica = mysql_fetch_array($rezultat);
$n=count($tablica);
$srednia=0;

for($i=0;$i<=$n;$i++)
{
$srednia=$srednia+$tablica[$i];
}

$srednia=$srednia/$n;

for($i=0;$i<=$n;$i++)
{
$wyraz_srednia=$tablica[$i]-$srednia; // tutaj do zmiennej $wyraz_srednia przypisujesz roznice danej liczby i sredniej wszystkich liczb

$tablica2[$i]= $wyraz_srednia * $wyraz_srednia;
}

for($i=0;$i<=$n;$i++)
{
$wynik=$wynik+$tablica2[$i]; //dostajesz sume tych wszystkich kwadratow roznicy wyrazu i sredniej;
}
$wynik=sqrt($wynik);

echo "<h1>Srednia: ".$srednia."</h1><P>";
echo "<h1>Odchylenie: ".$wynik."</h1><P>";


Kod daje takie wyniki dla popyt_klej i popyt_srubki
Srednia: 10
Odchylenie: 17.320508075689

Kod daje takie wyniki dla popyt_farba i popyt_drewno
Srednia: 5
Odchylenie: 8.6602540378444

Powinna wyjść średnia dla popyt_klej:
160/8 czyli 20

Mam takie pytanie: Czy da radę napisać tak kod aby później była możliwość dodawania kolejnych wierszy Id=9, data, popyty dla poszczególnych towarów itd... oraz możliwość dodawania towarów, czyli chodzi mi o taki kod który by liczył Pśr i OS nawet gdy tabela będzie się rozrastać w 2 wymiarach

Chyba nie ma sensu dla każdego towaru robić osobną tabelę w bazie danych. Takie rozwiązanie jakie prezentuje screen, że w jednej tabeli są wszystkie towary i wszystkie wartości popytu jest chyba najlepszy. Tylko problem z tym ciężkim do wymyślenia kodem.

Jakby ktoś był w stanie coś wymyśleć to proszę o jakieś pomysły lub kontakt
GG 3257134
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
damianprz
post
Post #2





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 26.08.2009
Skąd: Zamojsce

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


Możesz mi sprawdzić czy to jest OK?
Do wyświetlania tego co się policzyło (IMG:style_emoticons/default/smile.gif)
Chyba działa bo otrzymałem taką tabelkę jako wynik:

nazwa id srednia odchylenie
drewno 1 10.625 3.903123748999
srubki 2 15 5.5901699437495
klej 3 20 5.5901699437495
farba 4 18.125 9.3332403269175


  1. $zapytanko2="SELECT t.nazwa, p.id_towaru, avg( p.popyt ) AS srednia, std( p.popyt ) AS odchylenie
  2. FROM Produkty p
  3. LEFT JOIN Towar t ON p.id_towaru = t.id
  4. GROUP BY p.id_towaru
  5. ";
  6. $rezultat2 = mysql_query($zapytanko2)
  7. or die("Błąd zapytania");
  8.  
  9. $wiersze = mysql_num_rows($rezultat2);
  10.  
  11. echo '<table>';
  12. echo '<tr><td>nazwa</td><td>id</td><td>srednia</td><td>odchylenie</td></tr>';
  13.  
  14. for ($i=0; $i <$wiersze; $i++)
  15. {
  16. $wiersz = mysql_fetch_array($rezultat2);
  17. echo '<tr>';
  18. echo '<td>'.$wiersz['nazwa'].'</td>';
  19. echo '<td>'.$wiersz['id_towaru'].'</td>';
  20. echo '<td>'.$wiersz['srednia'].'</td>';
  21. echo '<td>'.$wiersz['odchylenie'].'</td>';
  22. echo '</tr>';
  23. }
  24. echo '</table>';


Ten post edytował damianprz 27.08.2009, 16:22:02
Go to the top of the page
+Quote Post

Posty w temacie
- damianprz   Obliczanie średniej i odchylenia standardowego   26.08.2009, 17:47:27
- - *OuTSideR*   przy obliczaniu sredniej zmien znak <= na < ...   26.08.2009, 18:22:25
- - damianprz   I co to da? Próbowałem i nic Powyższy kod bierze ...   26.08.2009, 21:20:22
- - thek   Wartość średnia to prosta sprawa, robisz bowiem su...   26.08.2009, 22:09:38
- - damianprz   Tylko jak zrobić sumowanie wszystkich wartości w k...   26.08.2009, 22:19:13
- - thek   Sumowanie wszystkiego w kolumnie: [SQL] pobierz, p...   26.08.2009, 22:47:41
- - damianprz   [PHP] pobierz, plaintext Średnia wynosi: 10.625, a...   27.08.2009, 11:59:54
- - thek   Problemy które poruszasz w poście zaznaczyłem po o...   27.08.2009, 13:01:53
- - damianprz   Na screenie widać 3 tabelki które zrobiłem wg twoj...   27.08.2009, 15:06:49
- - thek   Bo z rozpędu nie dopisałem warunku łączenia [SQL]...   27.08.2009, 15:59:16
- - damianprz   Możesz mi sprawdzić czy to jest OK? Do wyświetlani...   27.08.2009, 16:04:56
- - thek   Kod wygląda poprawnie. W sumie chyba jedynie nie m...   27.08.2009, 20:02:28
- - damianprz   Dzięki stary za pomoc Powyższe obliczenia stosuje ...   27.08.2009, 21:46:24
- - thek   No jasne. Zauważ, że grupujesz dane po id_towaru. ...   27.08.2009, 23:38:49
- - damianprz   Oj kolego thek, co ja bym bez Ciebie zrobił Dzięk...   28.08.2009, 00:00:18
- - thek   A ja życzę powodzenia w kodzie php/html i analizie...   28.08.2009, 00:54:52
- - damianprz   Ponoć ma być raczej pod koniec września tak żeby j...   28.08.2009, 18:21:36
- - thek   Zapytanie sypie Ci błąd bo nie nadałeś aliasu dla ...   28.08.2009, 21:37:08
- - damianprz   Już wcześniej ustawiłem wartości na double z obawy...   28.08.2009, 21:53:30
- - thek   Nie dublujmy może tematów i skupmy się w jednym U...   28.08.2009, 23:31:14
- - damianprz   [PHP] pobierz, plaintext UPDATE zapasy z LEFT JOIN...   29.08.2009, 11:40:41
- - thek   Owszem Mam na laptopie swoim wszystko co potrzebn...   29.08.2009, 13:21:54
- - damianprz   Już wszystko działa! Instalka Vertrigo pomogła   29.08.2009, 13:28:35
- - thek   Widzę, ze sugestia o fatalnym wpływie MySQL 3.X na...   29.08.2009, 16:20:12
- - MMaro   Witam odkopuje temat - ponieważ mam problem z ob...   21.06.2012, 17:50:42
- - thek   Pytanie... Po co obliczać odchylenie samemu, skoro...   21.06.2012, 19:20:41


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: 5.10.2025 - 01:46