Skocz do zawartości
siudy

Proste Obliczenie Statystyczne W Php

Rekomendowane odpowiedzi

Witam

pewnie napiszecie ze to glupie pytanie ale jestem poczatkujacy

 

otoz mam formularz z opcjami wyboru np plec i sa dwie mozliwosci czyli kobieta i mezczyzna

po wyborze zapisuje mi to do bazy , a baza sie nazywa "baza_klientów" i posiada jedna tabele o nazwie "klienci"

wyglada to tak w phpmyadmin: (zalacznik)

 

czyli mam w polu plec napisane kobieta lub mezczyzna do kazdego rekordu

teraz moje pytanie jak napisac skrypt, ktory wyciaga z bazy ile procentowo i ilosciowo jest kobiet a ile mezczyzn

 

cos w stylu

 

kobiet glosujacych 75% czyli 3 osoby

mezczyzn glosujacych 25% czyli 1 osoba

 

prosze bardzo o pomoc i sorry za byc moze banalne pytanie ale dopiero zaczynam

post-125808-1132885685_thumb.jpg

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zeby wyciagnac procentowo jeszcze na poziomie zapytania to musialbys miec baze z obsluga subqueries albo pobrac najpierw osobnym zapytaniem sama ilosc wszystkich glosow, albo obliczyc to pozniej juz w samym php (z racji, ze wiersze beda dwa z wynikami dla kobiet i mezczyzn to mozna to spokojnie zastosowac.. obliczenia beda szybkie).

A kwestie ilosciowe rozwiaze zapytanie:

SELECT plec, COUNT(*) ilosc FROM klienci GROUP BY plec

Obliczenie procentow z tego to juz powinna byc formalnosc, najpierw sumujesz obie uzyskane ilosci, a potem dla kazdej obliczasz jej stosunek do calosci i mnozysz razy 100.

Edytowane przez FiDO

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

A jesli bedzie wiecej mozliwosci odpowiedzi np wybor wojewodztwa?wtedy bedzie 16 mozliwosci i 16 wynikow z bazy, jak to najlepiej zrobic, oczywiscie prosto :)

chcialbym sie jeszcze dowiedziec jak te dane przedstawic np na wykrecie slupkowym np ile glosow z na konkretne wojewodztwo

 

prosze o sugestie

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

no to możesz najpier pobrać z bazy liczbę wszystkich rekordów. Później np. w jakiejś pętli pobierasz kolejno ile osob mieszka w danym województwie otrzymany wynik dzielisz przez zmienną do której zapisałeś ilość wszystkich osób i mnożysz razy 100

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

No zrobilem to tylko ze w taki "sposob na piechote" jestem poczatkujacy :(

kod wyglada tak:

 

print('Wszystkich głosów:');

$rezultat=mysql_query(" SELECT id FROM klienci ");

$calosc = mysql_num_rows($rezultat);

echo $calosc;

print('<br>');

print('Głosów kobiet:');

$rezultat=mysql_query("SELECT * FROM klienci WHERE plec='kobieta'");

$kobieta = mysql_num_rows($rezultat);

echo $kobieta;

print('<br>');

print('Głosów mezczyzn:');

$rezultat=mysql_query("SELECT * FROM klienci WHERE plec='mezczyzna'");

$mezczyzna = mysql_num_rows($rezultat);

echo $mezczyzna;

print('<br>');

print('Głosów mezczyzn procentowo:');

$procent_kobiet=(100*$mezczyzna)/($kobieta+$mezczyzna);

echo $procent_kobiet;

print('<br>');

print('Głosów kobiet procentowo:');

$procent_men=(100*$kobieta)/($kobieta+$mezczyzna);

echo $procent_men;

 

i nawet to chodzi tylko ze co bedzie jak bede mial powiedzmy w ankiecie 10 pytan a kazde pytanie po 4 odpowiedzi :(

na temat petli raczej nie mam pojecia

moze ktos zademonstrowalby mi na tym przykladzie jak to zrobic z petla czy w inny sposob mniej obszerny jesli chodzi o kod, bo tak jak powtarzam bede mial z 10-15 pytan i to jeszcze z wilksza iloscia mozliwych odpowiedzi

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ech, z województwem:

SELECT wojewodztwo, plec, count(  *  )  AS `ile` 
FROM tabela GROUP  BY wojewodztwo, plec

 

Co do pętelek i innych takich może zacznij od manuala?

 

http://www.php.net/manual/pl/control-structures.php

Edytowane przez ParanoiK

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

No ja siedze cały czas nad tym, co do php.net to nie znam na tyle angielskiego

moze jeszcze raz mniej wiecej napisze, tylko ze teraz na troszke na innym przykladzie:

otoz mam 10 pytan z opcjami wyboru imput type "radio" tak jak na zalaczniku-tyle ze na zalaczniku jest 3 pytania

post-125808-1133143517_thumb.jpg

a kod do tego to:

 

print(' Czy posiada Pan(i) telefon komórkowy?<br>');

print('<Input Type="Radio" Name="pyt1" value="A">');

print('Tak<br>');

print('<Input Type="Radio" Name="pyt1" value="B">');

print('Nie<br>');

print('<Input Type="Radio" Name="pyt1" value="C">');

print('Zamierzam kupić<br>');

print('<Input Type="Radio" Name="pyt1" value="D">');

print('Nie zamierzam kupować<br>');

 

print('Jakiej sieci jest Pan(i) abonentem?<br>');

print('<Input Type="Radio" Name="pyt2" value="A">');

print('Era<br>');

print('<Input Type="Radio" Name="pyt2" value="B">');

print('Orange<br>');

print('<Input Type="Radio" Name="pyt2" value="C">');

print('Plus<br>');

print('<Input Type="Radio" Name="pyt2" value="D">');

print('Inna<br>');

 

print('Z jakiej formy płatności Pan(i) korzysta?<br>');

print('<Input Type="Radio" Name="pyt3" value="A">');

print('Abonament<br>');

print('<Input Type="Radio" Name="pyt3" value="B">');

print('Pre-paid (karta)<br>');

print('<Input Type="Radio" Name="pyt3" value="C">');

print('Mix<br>');

print('<Input Type="Radio" Name="pyt3" value="D">');

print('Inna<br>');

 

do tego utworzylem tabele o nazwie "pytania" w bazie o nazwie"baza_klientow"-widok tabeli tez jest w zalaczniku.

post-125808-1133144193_thumb.jpg

i teraz tak: jak zrobic prosta statystyke raz dla wszystkich pytan?

bo ja obiczyc udziel liczbowy i procentowy jakiejs odpowiedzi w jakims pytaniu to wiem

bo wyglada to tak jak to wczesniej napisalem w przykladzie z płcią

 

value przyjmuje te same wartosci we wszystkich pytanich czyli ABCD i tak jest zapisywana w bazie,czy da sie to jakos wykorzystac zeby obliczac statystyke dla wszystkich pytan?wykorzystujac wczesniej jakis wzor

czyli jaki mam procentowy udzial kazdej z odpowiedzi na jakies pytanie

 

moze mi ktos napisze jakis skrypcik do tego

ludzie pomozcie ja sie dopiero ucze a ze na takim przykladzie to juz nie moja wina

Edytowane przez siudy

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

No to chociaż podpowiedzcie co mam zastosowac a ja sie bede dalej z tym motal, w php.net szukalem ale co z tego jak tak naprawde nie wiem co mam szukac, powiedzcie czego uzyc w tym przykladzie a ja sobie poszukam, bo co to za szukanie jak nie wiadomo czego szukac :(

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

A ja myślałem ze forum służy do wymiany informacji i pomocy a tu widocznie chyba nie, no nic trudno :(

 

a moze tylko na takie pytanie mi ktos odpowie?

 

Jak zablokować powtórne przetwarzanie formularzy przy odświeżaniu strony

 

ps musze zrobic ankiete internetowa na zaliczenie a ze ucze sie w szkole dopiero php i mysql od 2 m-cy to wiadomo jakie beda rezultaty, takze jak kogos urazilem moja niewiedza to sorry

Edytowane przez siudy

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jak zablokować powtórne przetwarzanie formularzy przy odświeżaniu strony

cookiesami?

 

 

A jak nie wychodzi Ci operowanie poleceniami SQL, a nie musisz się martwić o optymalizację, to zczytaj całą zawartość pożądaną z bazy do tablicy PHP i na niej pracuj. Zwykła dwuwymiarowa tablica wystarczy, do tego zliczanie ilości wystąpień określonej wartości w danym wierszu czy kolumnie, w połączeniu z jakąś pętelką z if'em i voila.

Edytowane przez Myszaqu

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...