Jump to content

PHP/mySQL poll


7 posts in this topic

Recommended Posts

I'm making a PHP/mySQL poll for a site, and I was just wondering if anyone had any suggestions/help/ideas. Here's what I have so far:


In the mySQL database, I have three tables: poll, poll_options, and poll_votes.




This table has three columns: poll_id (an autoincrementing number), poll_ques (varchar, the actual question), and poll_ans (a number that tells us how many possible answers we have for that poll).




This table also has three columns: poll_associd (an autoincrementing number that corresponds to poll_id in the poll table), poll_ansnum (the number of that particular answer), and poll_choice (varchar, the actual text of the answer)




This table once again has three columns: poll_ip (I want to record the IP addresses of those who vote in this table to prevent them from voting again), poll_voted (the id number of which poll they voted on), and poll_select (the number of the answer they chose).


So, this is how it would work:


If I had the following poll:


Who is coolest?

Option 1: Me

Option 2: You

Option 3: Tyler Durden


This is what it would look like in the database:


Table poll


1---------------Who is coolest?----------3


Table poll_options




1---------------------3---------------------Tyler Durden


Table poll_votes



(sorry about the dashes - it wouldn't let me put spaces)


Now I understand the concepts of everything, but I'm kind of new with PHP, so any suggestions on coding would be greatly appreciated.



Link to comment
Share on other sites

The easiest way would be first to start by writing out the steps you would need to take in psuedo-code an work from there. This is what it might look like after the "vote" button is pressed on a poll:


1. Check form values

1.1. If no option selected end script and report error

2. Connect to database

3. Retrieve IP of user (user_ip)

4. Check user_ip to responses already collected

4.1. Retrieve responses from database for current poll (SQL = SELECT * FROM Poll_votes WHERE poll_select = $_POST['poll_id'])

4.2. If Rows > 0 end script and report that user has already voted

5. Add IP and response to Poll_votes (SQL = INSERT INTO Poll_votes (poll_ip, poll_voted, poll_select) VALUES ($user_ip], $_POST['poll_id'], $_POST['poll_value']))

6. Thank user and display results

Link to comment
Share on other sites

Do you want someone to write the code for you?


ozboi pretty much summed (if that's not a word, it is now) it up pretty well.


If you don't know how to put the whole thing together, just piece every step ozboi laid out together. You can certainly learn better by trying it out yourself.


If you get stuck, we can help you with your code... but I know I certainly don't have the time to write parts out for you from scratch.


You seem to be on the right track. Keep us posted.

Link to comment
Share on other sites


  • Create New...