poll met PHPMyAdmin & MySQL

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Canisha Steenhuisen

Canisha Steenhuisen

18/03/2014 16:33:50
Quote Anchor link
Oke, voor informatica moet ik dus een poll maken door PHPMyAdmin te combineren met MySQL. Echt heel handig, want het boek legt niet uit wat je moet doen en mijn docent kan me ook niet verder helpen.
Het enige wat het boek zegt, is dat je twee tabellen aan moet maken: 1 tabel met daarin de vraag/stelling en een tabel met daarin de opties. Dit heb ik gedaan.

Om te zorgen dat er altijd verbinding gemaakt wordt met de database, gebruik ik
include("databaseconnectie.php");

In dat bestand staat het volgende:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
    mysql_connect("localhost", "root", "usbw");
        mysql_select_db("poll");
?>


Vervolgens heb ik een formulier gemaakt om te stemmen
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
                <?php
                        include("databaseconnectie.php");
        
                        $result = mysql_query("SELECT vraag FROM poll;");
        
                        while($data = mysql_fetch_assoc($result))
                            {

                                echo "<h1>" . $data["vraag"] . "</h1>";
                            }

            
                        $result2 = mysql_query("SELECT * FROM optie;");
        
                            if($data2 = mysql_fetch_assoc($result2))
                                {

                                    $optie = $data2["optie"];    
                
                                        ?>

                                            <form method="post" action="verwerk.php">
                                            <input type="radio" name="optie" value="1"> N&T <br>
                                            <input type="radio" name="optie" value="2"> N&G <br>
                                            <input type="radio" name="optie" value="3"> C&M <br>
                                            <input type="radio" name="optie" value="4"> E&M <br><br>
                                            <input type="submit" value="stemmen :)">
                                        <?php
                                }
                    ?>



(Oh ja, als vraag voor de poll heb ik gebruikt 'Welk profiel heb je?' De opties: 1) N&T   2) N&G  3) C&M   4) E&M )



Het formulier gebruikt het volgende script als actie:
  
    <?php
        include("databaseconnectie.php");
        
        $optie = $_POST["optie"];
        
        if ($optie == 1)
            {

                $stemmen = mysql_query("SELECT stemmen FROM optie WHERE id = 1;");
                $aantalstemmen = mysql_fetch_assoc($stemmen);
                $nieuwaantal = $aantalstemmen;
                
                $verwerk = "UPDATE optie SET stemmen = $nieuwaantal WHERE id = 1;";
                
                if(mysql_query($verwerk))
                    {

                        echo "Uw stem is toegevoegd!";
                    }

                
                else
                    {
                        echo "ERROR";
                    }
            }

            
        if ($optie == 2)
            {

                $stemmen = mysql_query("SELECT stemmen FROM optie WHERE id = 2;");
                $aantalstemmen = mysql_fetch_assoc($stemmen);
                $nieuwaantal = $aantalstemmen;
                
                $verwerk = "UPDATE optie SET stemmen = $nieuwaantal WHERE id = 2;";
                
                if(mysql_query($verwerk))
                    {

                        echo "Uw stem is toegevoegd!";
                    }

                
                else
                    {
                        echo "ERROR";
                    }
            }

            
        if ($optie == 3)
            {

                $stemmen = mysql_query("SELECT stemmen FROM optie WHERE id = 3;");
                $aantalstemmen = mysql_fetch_assoc($stemmen);
                $nieuwaantal = $aantalstemmen;
                
                $verwerk = "UPDATE optie SET stemmen = $nieuwaantal WHERE id = 3;";
                
                if(mysql_query($verwerk))
                    {

                        echo "Uw stem is toegevoegd!";
                    }

                
                else
                    {
                        echo "ERROR";
                    }
            }

        
        if ($optie == 4)
            {

                $stemmen = mysql_query("SELECT stemmen FROM optie WHERE id = 4;");
                $aantalstemmen = mysql_fetch_assoc($stemmen);
                $nieuwaantal = $aantalstemmen;
                
                $verwerk = "UPDATE optie SET stemmen = $nieuwaantal WHERE id = 4;";
                
                if(mysql_query($verwerk))
                    {

                        echo "Uw stem is toegevoegd!";
                    }

                
                else
                    {
                        echo "ERROR";
                    }
            }

        
        else
                    {
                        echo "ERROR";
                    }

    ?>


- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Alvast bedankt!
Gewijzigd op 18/03/2014 18:51:01 door - Ariën -
 
PHP hulp

PHP hulp

19/12/2024 08:59:36
 
Jan R

Jan R

18/03/2014 16:38:06
Quote Anchor link
En de vraag is?
 
Canisha Steenhuisen

Canisha Steenhuisen

18/03/2014 16:43:20
Quote Anchor link
De vraag is hoe ik verder moet. Want als ik dit script uitvoer, en op een van de opties stem krijg ik 'ERRORERROR'. Dus, wie krijgt dit werkend? ^^
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

18/03/2014 17:21:58
Quote Anchor link
Allereerst kan je het script een flink stuk inkorten:
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
<?php
include("databaseconnectie.php");
$optie = (int) $_POST['optie'];
if ($optie > 0 && $optie < 5) {
    $sql = "UPDATE optie SET stemmen = stemmen + 1 WHERE id = " . $optie;
    // als je het helemaal netjes wilt doen zet je ook de vraag_id in de WHERE
    if (mysql_query($sql) !== FALSE) {
        echo 'Uw stem is toegevoegd';
    else {
        echo 'ERROR op query: ', $sql, '<br>', mysql_error();
    }
}

else {
    echo 'Slapen doen we \'s nachts';
}

?>

Overigens kan je beter meteen over stappen op de mysqli extensie.
Gewijzigd op 18/03/2014 17:22:57 door Ger van Steenderen
 
Reshad F

Reshad F

18/03/2014 18:24:39
Quote Anchor link
En als je niet zomaar overal ERROR neerzet dan weet je wat er fout gaan als er iets fout gaat. :)
 
Ken PHP

Ken PHP

18/03/2014 20:02:03
Quote Anchor link
Haha.. :) Er zijn op internet heel veel voorbeelden en tutorials hoe je een Poll moet maken, zie http://code.tutsplus.com/articles/creating-a-web-poll-with-php--net-14257

Het is eigenlijk basic stuff wat je zelf moet kunnen maken met een beetje informatica achtergrond. Gewoon logisch nadenken en eerst een schema uittekenen voordat je begint met programmeren.
 
Canisha Steenhuisen

Canisha Steenhuisen

19/03/2014 09:45:20
Quote Anchor link
@Ger van Steenderen
thnx, nu doet ie het!! :)
 
Canisha Steenhuisen

Canisha Steenhuisen

09/04/2014 09:49:27
Quote Anchor link
Nog even een vraag over dit stuk:

<form method="post" action="verwerk.php">
<input type="radio" name="optie" value="1"> N&T <br>
<input type="radio" name="optie" value="2"> N&G <br>
<input type="radio" name="optie" value="3"> C&M <br>
<input type="radio" name="optie" value="4"> E&M <br><br>
<input type="submit" value="stemmen :)">

Hoe kun je er voor zorgen dat je niet zelf 'N&T' enzo erbij hoeft te zetten, maar dat hij dat ook uit de tabel kan lezen...???
 
Obelix Idefix

Obelix Idefix

09/04/2014 10:01:51
Quote Anchor link
Canisha Steenhuisen op 18/03/2014 16:33:50:
Echt heel handig, want het boek legt niet uit wat je moet doen en mijn docent kan me ook niet verder helpen.

Kan of wil de docent niet helpen??
Een docent lijken mij juist de aangewezen persoon om je te helpen.

Als hetgeen gevraagd wordt niet uitgelegd wordt door docent en/of in het boek, dan ben ik benieuwd wat voor opleiding dat dan is.
 
Canisha Steenhuisen

Canisha Steenhuisen

09/04/2014 10:06:03
Quote Anchor link
Obelix en Idefix op 09/04/2014 10:01:51:
Canisha Steenhuisen op 18/03/2014 16:33:50:
Echt heel handig, want het boek legt niet uit wat je moet doen en mijn docent kan me ook niet verder helpen.

Kan of wil de docent niet helpen??
Een docent lijken mij juist de aangewezen persoon om je te helpen.

Als hetgeen gevraagd wordt niet uitgelegd wordt door docent en/of in het boek, dan ben ik benieuwd wat voor opleiding dat dan is.


Helaas niet die van ons.
Die snapt er vaak nog minder van dan wij =S
 
Michael -

Michael -

09/04/2014 10:24:58
Quote Anchor link
>>> Hoe kun je er voor zorgen dat je niet zelf 'N&T' enzo erbij hoeft te zetten, maar dat hij dat ook uit de tabel kan lezen...???

Daar een extra tabel te maken waarin je antwoorden staan.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
Tabel vragen
    id (int a_i) -----|
    vraag (varchar)   |
                      |
Tabel antwoorden      |
    id (int a_i)      |
    vragen_id (int) --|
    antwoord (varchar)
    stemmen (int)


En met een JOIN zorg je dat de antwoorden bij de goede vraag komen d.m.v. id-vragen_id

Ik hoop niet dat je werkelijk een informatica opleiding doet. Een leraar die zelf niet weet wat voor opdracht die geeft en jou met verouderde functies als mysql_* laat werken is geen succes.
 
Canisha Steenhuisen

Canisha Steenhuisen

09/04/2014 20:22:22
Quote Anchor link
Michael - op 09/04/2014 10:24:58:
>>> Hoe kun je er voor zorgen dat je niet zelf 'N&T' enzo erbij hoeft te zetten, maar dat hij dat ook uit de tabel kan lezen...???

Daar een extra tabel te maken waarin je antwoorden staan.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
Tabel vragen
    id (int a_i) -----|
    vraag (varchar)   |
                      |
Tabel antwoorden      |
    id (int a_i)      |
    vragen_id (int) --|
    antwoord (varchar)
    stemmen (int)


En met een JOIN zorg je dat de antwoorden bij de goede vraag komen d.m.v. id-vragen_id

Ik hoop niet dat je werkelijk een informatica opleiding doet. Een leraar die zelf niet weet wat voor opdracht die geeft en jou met verouderde functies als mysql_* laat werken is geen succes.


Ik heb ook 2 tabellen, maar als ik d.m.v. het id de antwoorden erbij wil zetten, krijg ik alleen maar foutmeldingen (dat de query niet goed is, of dat het id onbekend is).

En het is niet een informatica opleiding, het is gewoon informatica op de middelbare school ;)
Maar het is inderdaad niet handig dat de docent in de meeste gevallen vrijwel niet kan helpen...

Toevoeging op 09/04/2014 20:25:52:

>>>> En met een JOIN zorg je dat de antwoorden bij de goede vraag komen d.m.v. id-vragen_id


JOIN?? Dat zegt me dus helemaal niets :$
 



Overzicht Reageren

 
 

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.