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
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Zapytanie sypie Ci błąd bo nie nadałeś aliasu dla podzapytania... Zauważ, że po nawiasach nie masz nazwy tego, choć sądząc z całości powinno tam być napisane produkty. Tworzenie tabeli nie jest konieczne. Ważne byś miał gdzieś możliwość przechowania informacji o aktualnych danych jakie wyliczasz i tych jakie potrzebujesz (jak aktualny stan produktu). Może to być wspomniana Zapasy czy jakakolwiek inna, która jest związana bezpośrednio z danym produktem (drewnem, śrubkami) poprzez id_towaru. Opisana przez Ciebie dobrze pasuje, z jednym małym zastrzeżeniem. Średnia i odchylenie muszą być wartościami zmiennoprzecinkowymi, czyli FLOAT lub DOUBLE, bo inaczej przytnie Ci wartości za przecinkiem, gdyż pole to masz na int ustawione. Wygodniej będzie double bo ma większą precyzję.

Ten post edytował thek 28.08.2009, 21:38:38
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 06:29