enquete

Gesponsorde koppelingen

PHP script bestanden

  1. enquete

« Lees de omschrijving en reacties

Database maken:
Antwoorden:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
CREATE TABLE `antwoorden` (
  `id` int(11) NOT NULL auto_increment,
  `ip` varchar(20) NOT NULL,
  `antwoorden` varchar(255) NOT NULL,
  `datum` datetime NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


Vragen:
In deze tabel moet je zelf de vragen invoeren. De antwoorden moet je zo neerzetten:
antwoord 1|antwoord 2|antwoord 3 Let hierbij op de | die de antwoorden splitst
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
CREATE TABLE `vragen` (
  `id` int(11) NOT NULL auto_increment,
  `vraag` varchar(255) NOT NULL,
  `antwoorden` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Na het invullen van de vragen moet je tabel er zo uitzien:
http://phphulp.terencehersbach.nl/enquete/phpmyadmin_1.jpg
Pagina's:
Zet alle bestanden in dezelfde map.

config.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
//vul hier je gegevens in (alleen gebruikersnaam en wachtwoord):
mysql_connect('localhost','gebruikersnaam','wachtwoord') or die('<br /><br />Er ging iets fout bij het verbinden met de database. Controleer of je verbinding hebt, de config goed ingevuld is, de database aangemaakt is enz.<br /><br />Foutmelding:<br />'.mysql_error());

//vul hier de database in die je gebruikt
mysql_select_db('database');
?>


index.php:
Hierin kan je je introductieverhaal kwijt. Ook word hier gecontroleerd of de enquete al niet eerder ingevuld is.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
include 'config.php';
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Internet onderzoek</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>

<body>

<div class="centrum">
<div class="header">Internetonderzoek</div>
<div class="content" id="content">
<div class="balk"><span style="color:#000033;">Introductie</span> | Vragen | Afronding</div>

<!-- jouw introductieverhaaltje waarom je deze enquete doet -->
Hier komt jouw introductie!.<br /><br />
<!-- deze regel vinden veel mensen fijn om te lezen -->
Je bent geheel vrijwillig om mee te doen, er worden geen persoonlijke gegevens gevraagd en je gegevens kunnen niet individueel door derden ingezien worden.<br /><br />
<?php
if(mysql_num_rows(mysql_query("SELECT id FROM antwoorden WHERE ip = '".$_SERVER['REMOTE_ADDR']."'")) == 0)
    echo '<input type="button" onclick="window.location=\'vragen.php\';" value="Beginnen" class="knop" />';
else
    echo 'Je kan deze enquete maar 1 keer invullen. <a href="uitslag.php">Hier</a> kan je de uitslag bekijken.';
?>

</div>
</div>
</body>
</html>


vragen.php:
Hierin hoef je verder niets te veranderen. De vragen worden uit de database gelezen en stuk voor stuk weergeven op het scherm.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
session_start();

include "config.php";

$aantal_vragen = mysql_num_rows(mysql_query("SELECT id FROM vragen"));        

if($_POST['volgende'] && $_SESSION['vraagnr'] != '' && $_POST['vraag'.$_SESSION['vraagnr']] != '')
{

    if($_POST['vraag1'])
        $_SESSION['antwoordjes'] = $_POST['vraag1'];
    else
        $_SESSION['antwoordjes'] .= '|'.$_POST['vraag'.$_SESSION['vraagnr']];
    
    $_SESSION['vraagnr']++;
}


if($_POST['vraag'.$aantal_vragen] != '' && $_SESSION['vraagnr'] >= ($aantal_vragen + 1))
{

    mysql_query("INSERT INTO antwoorden (ip,antwoorden,datum) VALUES ('".$_SERVER['REMOTE_ADDR']."','".$_SESSION['antwoordjes']."',NOW())");
    session_destroy();
    header("Location: outro.php");
}


if($_SESSION['vraagnr'] == '' || $_SESSION['vraagnr'] >= ($aantal_vragen + 1))
{

    $vraag = 1;
    $_SESSION['vraagnr'] = $vraag;
}

else
    $vraag = $_SESSION['vraagnr'];


$data = mysql_fetch_array(mysql_query("SELECT vraag,antwoorden FROM vragen WHERE id='".$vraag."'"));

$antwoorden = explode('|',$data['antwoorden']);

$vraag = stripslashes($data['vraag']);


?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Internet onderzoek</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>

<body>
<table align="left">
</table>
<div class="centrum">
<div class="header">Internetonderzoek</div>
<div class="content" id="content">
<div class="balk">Introductie | <span style="color:#000033;">Vragen</span> | Afronding</div>
<br /><strong><?php echo $vraag; ?></strong><br />
<br />
<form method="post" action="vragen.php">
<?php
$nummer
= 1;
foreach($antwoorden as $antwoord)
{

    echo '<input type="radio" name="vraag'.$_SESSION['vraagnr'].'" value="'.$nummer.'" id="antwoord'.$nummer.'" /><label for="antwoord'.$nummer.'">'.$antwoord.'</label><br />';
    $nummer++;
}


?>

<br />
<input type="submit" name="volgende" value="Volgende" class="knop" />
</form>
</div>
</div>
</body>
</html>


outro.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Internet onderzoek</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>

<body>

<div class="centrum">
<div class="header">Internetonderzoek</div>
<div class="content" id="content">
<div class="balk">Introductie | Vragen | <span style="color:#000033;">Afronding</span></div>

<!-- hier kan je nog een klein outro-verhaaltje kwijt -->
Bedankt voor het invullen!<br /><br />Dankzij jou kunnen we weer verder met ons onderzoek. <br /><br />Om dubbele data en irritante mensen tegen te gaan kan je vanaf je computer/netwerk niet nog een keer deze enquete invullen.<br />
<a href="uitslag.php">Hier</a> kan je de uitslag bekijken.
</div>
</div>
</body>
</html>


uitslag.php
Hierin kun je de uitslag vinden van je enquete
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
session_start();
include_once 'config.php';
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Onderzoek | Uitslag</title>
</head>

<body style="font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px;">

<table border="0" cellpadding="3" cellspacing="0">


<?php

//vragen laden

for($i = 1; $i <= 10; $i++)
{

    $kleur[$i] = $i %2 == 0 ? '#999999' : '#d8d8d8';
}


$result = mysql_query("SELECT antwoorden FROM antwoorden") or die(mysql_error());

while($data = mysql_fetch_array($result))
{

    $antwoord = explode('|',$data['antwoorden']);
    
    foreach($antwoord as $key => $waarde)
    {

        $vraag['vraag'][ $key ][ $waarde ]++;
    }
}


$nr = 1;

$result = mysql_query("SELECT id,vraag,antwoorden FROM vragen");

while($data = mysql_fetch_array($result))
{

    echo '<tr bgcolor="#666666" style="color:#ffffff"><td colspan="1">'.$data['vraag'].'</td><td>Uitslag:</td></tr>';
    
    $antwoorden = explode('|',$data['antwoorden']);
    
    foreach($antwoorden as $key => $waarde)
    {

        $aantal_mensen = mysql_num_rows(mysql_query("SELECT id FROM antwoorden"));        
        
        //voorkom de melding division by zero
        if($aantal_mensen == 0)
            $aantal_mensen = 1;
            
        echo '<tr bgcolor="'.$kleur[$nr].'"><td>'. $waarde.'</td>
        <td> '
. round(($vraag[ 'vraag' ][ $data['id'] -     1 ][ $nr ] / $aantal_mensen)*100,1).'%</td></tr>';
        $nr++;
    }

    $nr=1;
    echo '<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>';
}

    
?>


</body>
</html>


style.css:
Hiermee maak je de pagina op. Natuurlijk geheel aan je eigen smaak aan te passen!
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/* CSS Document */

body,html {
    font-family:Verdana, Arial, Helvetica, sans-serif;
    height:100%;
    font-size:10px;
    margin:0px;
    background:url(images/back.jpg) repeat-y top;
}

.centrum {
    width:600px;
    height:100%;
    border-left:2px #000033 solid;
    border-right:2px #000033 solid;
    margin:0 auto;
    line-height:20px;
    background-color:#ffffff;
}

.header {
    width:600px;
    height:200px;
    background:url(images/header.jpg) no-repeat;
    color:#FFFFFF;
}

.content {
    padding:10px;
}

.balk {
    text-align:center;
    color:#666666;
}

.knop {
    border:1px #000033 solid;
}

form {
    margin:0px;
}


De plaatjes:
De plaatjes moeten in de map images gezet worden, die in dezelfde map als de rest van de scripts staat.

Klik hier voor de achtergrond

http://www.coolcarstyling.nl/phphulp/onderzoek/images/header.jpg
Dit is het plaatje dat ik gebruik als header in het voorbeeld.

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.