webForumDet fria alternativet

Omröstning

4 svar · 406 visningar · startad av Jesper2

Jesper2Medlem sedan dec. 200475 inlägg
#1

Hej, jag behöver hjälp med att komma igång med en omröstningsfunktion jag ska ha på en hemsida jag arbetar på.

En admin (adminsektion osv är redan fixad) skall kunna lägga till en ny omröstning (gamla omröstningar sparas i DB) och själv välja antal svarsalternativ och vad svaren skall vara. Vid utskrift skall antalet röster på varje röstalternativ skrivas ut. Jag behöver IP-logg, alternativt cookie, så att samma dator inte kan rösta två gånger.

Jag har kommit en bit på vägen, men inser att jag måste börja om från scratch. Jag förstår inte hur man gör så att rätt antal svarsalternativ skrivs ut. Helproblem :/ Har frågat en vän som äger en egen community, men han kunde inte heller komma på hur man gjorde.

Jag använder PHP och MySQL.

Tack på förhand!

PeddaMedlem sedan juni 20006 032 inlägg
#2

Vet inte hur du har lagt upp databasen men om du har en tabell med frågorna och en tabell för svarsalternativen så får du även spara ett referensid från frågans tabell i svarstabellen.

Letade reda på ett gammalt poll skript som jag gjorde för länge sen. Kolla lite på hur jag lagt upp databasen så kanske du förstår hur jag menar.

	// Skapa tabell för admin
	mysql_query("CREATE TABLE poll_admin ( 
	  id int(11) NOT NULL auto_increment, 
	  user varchar(30) NOT NULL default '', 
	  pass varchar(30) NOT NULL default '',  
	  PRIMARY KEY  (id) 
	) TYPE=MyISAM;") or die (mysql_error());
	
	// Skapa tabell för svaren, färger och röstningar
	mysql_query("CREATE TABLE poll_data ( 
	  id int(11) NOT NULL auto_increment,
	  poll_refid int(11) NOT NULL default '',
	  poll_answ VARCHAR(100) NOT NULL default '', 
	  color VARCHAR(6) NOT NULL default '', 
	  votes int(14) NOT NULL default '',
	  PRIMARY KEY  (id) 
	) TYPE=MyISAM;") or die (mysql_error());
	
	// Skapa tabell för frågan, status
	mysql_query("CREATE TABLE poll_index ( 
	  polls_id int(11) NOT NULL auto_increment,
	  question VARCHAR(100) NOT NULL default '',
	  status smallint(2) NOT NULL default '', 
	  PRIMARY KEY  (polls_id) 
	) TYPE=MyISAM;") or die (mysql_error());
	
	// Skapa tabell för ip
	mysql_query("CREATE TABLE poll_ip ( 
	  ip_id int(11) NOT NULL auto_increment,
	  ip VARCHAR(15) NOT NULL default '',
	  ip_refid int(11) NOT NULL default '',
	  cookie VARCHAR(15) NOT NULL default '', 
	  PRIMARY KEY  (ip_id) 
	) TYPE=MyISAM;") or die (mysql_error());
	
	// Skapa tabell för inställningarna
	mysql_query("CREATE TABLE poll_settings ( 
	  poll_set smallint(2) NOT NULL default '',
	  poll_border smallint(2) NOT NULL default '',
	  poll_bordercolor VARCHAR(6) NOT NULL default '',
	  poll_questcolor VARCHAR(6) NOT NULL default '', 
	  poll_questbg VARCHAR(6) NOT NULL default '', 
	  poll_bg VARCHAR(6) NOT NULL default '', 
	  poll_barbordcolor VARCHAR(6) NOT NULL default '', 
	  poll_barbg VARCHAR(6) NOT NULL default '', 
	  poll_width int(3) NOT NULL default '', 
	  poll_proc smallint(2) NOT NULL default '',
	  poll_numb smallint(2) NOT NULL default '',
	  poll_credit smallint(2) NOT NULL default '',
	  poll_totnumb smallint(2) NOT NULL default '',
	  ps VARCHAR(250) NOT NULL default '',
	  poll_meddelande VARCHAR(50) NOT NULL default '',
	  poll_text1 VARCHAR(50) NOT NULL default '',
	  poll_text2 VARCHAR(50) NOT NULL default '',
	  PRIMARY KEY (poll_set)
	) TYPE=MyISAM;") or die (mysql_error());
Jesper2Medlem sedan dec. 200475 inlägg
#3

Hmm.. Jag har aldrig använt PHP för att skapa tabeller men jag tror jag förstår. Det största problemet jag har är det här:
Ex:
Frågan har fem svarsalternativ av åtta.
När man har svarat skall då endast fem resultat visas.

Hur gör jag detta utan hårdkodning?

PeddaMedlem sedan juni 20006 032 inlägg
#4

Är inte riktigt säker på vad du menar. Vill du bara visa de alternativ som någon har röstat på?
Isf så är det i sql frågan man väljer vad som ska visas.

Men jag kanske missuppfattar dig?

Jesper2Medlem sedan dec. 200475 inlägg
#5

Pedda skrev:

Är inte riktigt säker på vad du menar. Vill du bara visa de alternativ som någon har röstat på?
Isf så är det i sql frågan man väljer vad som ska visas.

Men jag kanske missuppfattar dig?

Ja jävlar.. Nu fick du igång min skalle! Jag ska göra ett försök.
Tack!

137 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)