ik moet voor een school opdracht een poll maken met een dropdown menu met 50 bands erin en waarbij de eerst stem voor 9 punten telt de 2e voor 6 en de 3e voor 3 punten kan iemand mij daarbij helpen???
maar ik weet niet hoe ik de votes moet laten opslaan in de database en waarbij de eerste stem 10 punten krijgt en de tweede 6 en de derde stem 3 punten. ook moet ik doen dat als ik in de eerste stem bijvoorbeeld racoon pak dat je die niet kunt kiezen bij de 2e en 3e stem.
of weet er iemand hier een site waar je bijna een klant en klare poll kunt downloaden die je alleen aan moet passen??
<?php
<?php
error_reporting(E_ALL ^ E_DEPRECATED);
// php select option value from database
Zorg eerst maar eens formulier afhandeling. Daarna kan je eventueel de Poll vragen en de antwoorden gescheiden opslaan. De vragen sla je bijv. op in een tabel 'poll-questions- en de antwoorden aka je in de tabel 'poll-answers' op, met een koppeling naar de poll-questions.
Zorg eerst maar eens formulier afhandeling. Daarna kan je eventueel de Poll vragen en de antwoorden gescheiden opslaan. De vragen sla je bijv. op in een tabel 'poll-questions- en de antwoorden aka je in de tabel 'poll-answers' op, met een koppeling naar de poll-questions.
Uiteindelijk kom je dan op twee queries uit.
oke maar ik ze echt niet weten hoe ik dat zou moeten gaan doen :p
Indien er niet meerdere "polls" gehouden worden maar enkel de vraag "wat is je favoriete band top 3" dan zou je kunnen volstaan met twee tabellen:
bands
id
name
bands_favorites (oid)
id
email
fav1_band_id
fav2_band_id
fav3_band_id
Als je het zo opslaat weet je precies wie op welke bands heeft gestemd en kun je daarna nog wel uitrekenen wat de meest "favoriete" band is (zowel in PHP als MySQL), zelfs als de gewichten (vermenigvuldigingsfactoren) waarmee je rekent veranderen.
Indien er niet meerdere "polls" gehouden worden maar enkel de vraag "wat is je favoriete band top 3" dan zou je kunnen volstaan met twee tabellen:
bands
id
name
bands_favorites (oid)
id
email
fav1_band_id
fav2_band_id
fav3_band_id
Als je het zo opslaat weet je precies wie op welke bands heeft gestemd en kun je daarna nog wel uitrekenen wat de meest "favoriete" band is (zowel in PHP als MySQL), zelfs als de gewichten (vermenigvuldigingsfactoren) waarmee je rekent veranderen.
maar het probleem is dat ze kunnen kiezen uit 50 bands die al in de database staan.
en dan werkt dit niet neem ik aan
Natuurlijk wel. Dat is iets wat je in je formulier oplost (met JavaScript), of in de verwerking (controles in PHP en terugkoppelingen aan de gebruiker indien er fouten zijn of er niets is ingevuld). Meerdere oplossingen denkbaar.
Stap 1 lijkt mij gewoon de informatie in de database krijgen. Desnoods in eerste instantie zonder controle of dit verschillende bands zijn. Als iemand 3x op zijn favoriete band wil stemmen soit. Lossen we later wel op.
Je moet het zo zien: dit zijn allemaal deelproblemen, die je in afzondering op kunt lossen. Eerst wil je toch data in je database krijgen, daarna kun je dit nog tweaken maar dan heb je in ieder geval iets dat (tot op zekere hoogte) werkt.
Probeer niet alles in 1x op te lossen, maar doe dit in stappen.
Moet ik echt gaan voorkauwen wat er moet gebeuren?
Indien het formulier gesubmit wordt:
- controleer invoervelden, is alles correct ingevuld? controleer hier ook of iemand al gestemd heeft (kijk of het e-mailadres al voorkomt in de tabel met stemmen dmv een SELECT query)
- zonee: koppel foutmelding(en) terug
- zoja: schrijf de stem met de 3 bands weg naar de stemmen-tabel (dmv een INSERT query)
Dan zou je op een aparte pagina een overzichtje kunnen genereren met de notering van de bands (wederom met een SELECT query en wat rekenwerk ofwel in PHP ofwel in MySQL).
ik krijg een error in deze code:
<?php
if (isset($_POST['submit'])){
$email = mysqli_real_escape_string($conn, $_POST['Email']);
$vote1 = mysqli_real_escape_string($conn, $_POST['vote1']);
$vote2 = mysqli_real_escape_string($conn, $_POST['vote2']);
$vote3 = mysqli_real_escape_string($conn, $_POST['vote3']);
$stmt = mysqli_prepare($db_link, "
UPDATE poll
SET band_regel =
CASE stemmen
WHEN ? THEN punten + 10
WHEN ? THEN punten + 6
WHEN ? THEN punten + 3
END
WHERE stemmen IN (?, ?, ?)");
mysqli_stmt_bind_param($stmt, "iiiiii", $vote1, $vote2, $vote3, $vote1, $vote2, $vote3);
mysqli_stmt_execute($stmt);
?>
in hier zit de fout volgens de error :
<?php
mysqli_stmt_bind_param($stmt, "iiiiii", $vote1, $vote2, $vote3, $vote1,$vote2, $vote3);
mysqli_stmt_execute($stmt);?
?>
dit is de error :
Warning: mysqli_stmt_bind_param() expects parameter 1 to be mysqli_stmt, boolean given in C:\wamp64\www\poll2.php on line 129
and:
Warning: mysqli_stmt_execute() expects parameter 1 to be mysqli_stmt, boolean given in C:\wamp64\www\poll2.php on line 130
[size=xsmall]Toevoeging op 02/06/2016 11:39:51:[/size]