• 28 odgovora
  • 11.740 pregleda
Re: Anketa u php-u sa MySQL 03.11.2011. u 22:48 · pre 182 meseci #21
Pozdrav. Imam jedno pitanje koje ne mogu da riješim.
Napravio sam anketu koja radi sasvim ok. Sada pokušavam da napravim stranicu na kojoj će mi se ispisati rezultati zadnje ankete.

Struktura tabela su slijedeće.

Tabela anketa

id,pitanje,opcija1,opcija2,opcija3,opcija4,opcija5

Tabela glasovi

id,p_id,odgovor,glas

Ovo u principu funkcioniše uredu. U prvu tabelu smještam podatke za ankete dok u drugoj čuvam podatke koliko je ljudi glasalo i za koju opciju.
Medjutim malo mi je problem oko rezultata.


Code:


mysql_connect($host,$user,$lozinka) or die ("Nemoguce izabrati");
mysql_select_db($baza) or die ("Nemoguce izabrati bazu");

$zadnji=mysql_query("SELECT id FROM anketa ORDER BY id DESC LIMIT 0,1");

while($vidi=mysql_fetch_assoc($zadnji))
{
    $id=$vidi['id'];

}


$upit=mysql_query("SELECT * FROM glasovi WHERE p_id='$id'");
while($red=mysql_fetch_assoc($upit)){
 
 echo $red['odgovor'];
  echo $red['glas'];
  echo '</br>';
 

    
    
    

}



Medjutim,nikako mi se ne svidja rješenje. Jer npr ako za neku opciju nije nikako glasano ne prikazuje mi je u rezultatima..
Može li mi neko pomoći oko boljeg rješenja?
Hvala i pozdrav

Re: Anketa u php-u sa MySQL 03.11.2011. u 22:54 · pre 182 meseci #22
Cekaj, jel tebi treba da ispise bas svaki glas ili pravi rezultat ankete, tj. neki procenat ili tako?
Potpis
THE ONLY EASY DAY WAS YESTERDAY
Re: Anketa u php-u sa MySQL 03.11.2011. u 23:10 · pre 182 meseci #23
Treba da mi se ispišu rezultati zadnje ankete.Nešto kao procenat medjutim to sam uradio umjesto procenata,stavio sam samo broj glasova. U biti to mi je svejedno,samo mi je problem jer u slučaju da se u nekoj anketi ne glasa za odredjenu opciju,neću je imati u bazi i onda mi ta opcija u rezultatima neće biti izlistana uopšte. A volio bih da stavim i tu opciju da ima 0 glasova a ne da je ne prikazuje nikako..
Može i na procenat,svejedno..
hvala :)
Re: Anketa u php-u sa MySQL 03.11.2011. u 23:14 · pre 182 meseci #24
Aha, aha, kapiram... mislio sam da ti se u tu tabelu upisuje svaki glas zasebno, a u sustini se samo povecava broj glasova tj. edituje vrednost... :) odgovor je u sustini opcija iz prve tabele, jel da?

Ono sto bi mogao da odradis je da ti se pri kreiranju neke ankete, kreiraju i unosi u tabeli "glasovi", i da se popune pocetne vrednosti "glas" sa nulom.
Potpis
THE ONLY EASY DAY WAS YESTERDAY
Re: Anketa u php-u sa MySQL 03.11.2011. u 23:17 · pre 182 meseci #25
Da,upravo...

Nekako mi je ta ideja pala na pamet ali mi se učinila malo "zastarjelo",odnosno nekako ne praktična :D
Uglavnom,odradiću tako,ukoliko neko ne napiše neki konstruktivniji i ljepši prijedlog :)

Hvala svakako.
Re: Anketa u php-u sa MySQL 03.11.2011. u 23:20 · pre 182 meseci #26
Pa i nije neprakticna, bar sa tom organizacijom koja je sad :)

Ono sto ja mislim da bi bilo bolje je da imas samo jednu tabelu, koja bi bila malo poveca, ali koja bi sadrzala i informacije o nazivu opcija i kolicini glasova. Tako bi resio problem svega toga i sve bi bilo prakticnije :)
Potpis
THE ONLY EASY DAY WAS YESTERDAY
Re: Anketa u php-u sa MySQL 03.11.2011. u 23:38 · pre 182 meseci #27
U par narednih dana ću se igrati sa novom opcijom kako bi mi to malo ljepše izgledalo :D

Pa ću postaviti kod ovdje,pa onda možeš baciti komentar i to...Ovo su sve neke ideje u glavi i vjerovatno na pogrešan naćin napisane ali sam gledao da sam logički odradim dio posla pa to sve izgleda na vrat na nos :D
Re: Anketa u php-u sa MySQL 03.11.2011. u 23:59 · pre 182 meseci #28
Super :)
Evo ti neka moja ideja, pa ti vidi da li ti se svidja, ili je prilagodi...

Tabela izgleda ovako, skraticu je na 3 izbora da skratim malo kucanje:

id | tekst_ankete | izbor_1 | izbor_2 | izbor_3 | glasova_1 | glasova_2 | glasova_3

Stranice koje ucestvuju, iliti delovi koda:

index - linkovi do svega, ponudjene ankete itd, nalickaj ga kako hoces :)
stranica za kreiranje ankete - stranica koja radi mysql query i pravi novi unos u tabeli, kreira npr : 1 | Da li volite PHP? | da | ne | ne znam sta je PHP | 0 | 0 | 0
stranica za glasanje - otvara anketu koju uzmes preko id-a ankete (mysql select), prikazuje info o njoj, razlika izmedju tvog i ovog nacina je sto se koristi samo 1 mysql query za prikaz glasova. Kada korisnik odabere preko radio buttona (verovatno ti je to izbor), radi se mysql update query samo tog polja koje je korisnik izabrao.
stranica za prikaz anketa - obican select query jedne ili vise anketa, potom mozes da iscitas vrednosti svih glasova, matematicki odredis procente i posao zavrsen :)
Potpis
THE ONLY EASY DAY WAS YESTERDAY
Re: Anketa u php-u sa MySQL 04.11.2011. u 08:46 · pre 182 meseci #29
Napisah kilometarski odgovor, i taman da posaljem kad nestade struje. Samo na minut. Mislim da se to desava samo u ovoj usranoj drzavi :/.

Enivej, evo kako bih ja to uradio:

tabele:
Code:

anketa:
aid - anketa id
ime - ime ankete
opis - opis ankete

Code:

pitanja:
pid - pitanje id
aid - anketa id
pitanje - tekst pitanje
odgovora - procenat ili broj ili kako hoces odgovora

Code:

odgovori:
oid - odgovor id, ako ti ne treba ne moras ga pisati
aid - anketa id, ako neces cesto uzimati ime ankete, ovo ti ne treba. Za te retke slucajeve mozes uzimati preko pid-a (znaci ide pid pa dalje preko pitanja ides do aid-a)
pid - pitanje id
user (identifikacija korisnika, ako imas registraciju ovde mozes staviti uid, a podatke za korisnika drzati u drugoj tabeli)
odgovor - izabrani odgovor

-----------------------------------------
Znaci prilikom dodavanja ankete prvo upisujes detalje u tabelu anketa. Posle u pitanja upisujes samo pid ankete, i na taj nacin povezujes pitanje sa anketom (imas dobru funkciju mysql_insert_id(), koja ti vraca id zadnje unete vrednosti (id iz auto_increment reda)), cisto da znas ako ces sve da radis na jednoj strani.
Odgovore upisujes u odgovori, logicno. Kad uneses odgovor, radis mysql_query("UPDATE pitanja SET odgovora=odgovora+1(ovo pises bas ovako, ne moras prvo da vadis vrednost odgovora da bi dodao +1) WHERE pid='$pid'").
-----------------------------------------
Prednost ovog pristupa je to sto mozes da imas koliko god hoces pitanja u anketi, i ne moras da svaki put povlacis sve odgovore, jer vrednosti vec imas izracunate u tabeli pitanja.
Inace imena tabela/redova pisi na engleskom, i sori ako sam malo pametovao(racunam bolje sve da napisem, mozda nesto od toga ne znas, znam koliko bi meni koristilo da nisam morao sve sam da provaljujem :) ).
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme