Column count doesn't match value count at row 1

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Ben Janssen

Ben Janssen

21/09/2010 14:06:15
Quote Anchor link
Beste PHPer's

Ik gebruik het gastenboek wat ik hier heb gevonden.
http://www.phphulp.nl/php/tutorial/data-verwerking/gastenboek/689/

Heb hier en daar wat tweaks gemaakt, maar ik krijg de datum invoer niet goed.

Zet ik er haakjes achter, krijg ik een fout melding, gebruik ik de orginele waarde, dan doet hij helemaal niets, en krijg ik zelfs geen foutmelding.

Wie weet wat ik fout doe?, en kan mij de juiste code weergeven.
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
<?php

/**
 * @author Ben
 * @copyright 2010
 */

// Schrijf.php

// Database connectie maken met database

include('config.php');

// Connectie maken met de ubb pagina voor email check
include('ubb.php');

// Als er gepost is checken of er niks vergeten is
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    $datum = date("d.m.Y H:i");
    // Als de naam niet is ingevult
    if(!isset($_POST['naam']))
    {

        // Error
        echo 'U bent vergeten uw naam in te vullen';
    }

    // Anders
    else
    {
        // Als de email niet is ingevult
        if(!isset($_POST['email']))
        {

            echo 'U bent vergeten uw email in te vullen';
        }

        // Anders
        else
        {
            // Als email niet klopt
            if(check_mail($_POST['email']))
            {

                echo 'U heeft geen geldige email ingevult';
            }

            // Anders
            else
            {
                // Als bericht is ingeveult
                if(!isset($_POST['bericht']))
                {

                    echo 'U heeft geen bericht ingevult';
                }

                // Anders
                else
                {
                    // De mysql_query uitvoeren om alles in de db te zetten
                    $sql = mysql_query("INSERT INTO
                                            gastenboek
                                                (
                                                naam,
                                                email,
                                                bericht,
                                                datum
                                                )
                                        VALUES
                                            (
                                            '"
.mysql_real_escape_string($_POST['naam'])."'
                                            '"
.mysql_real_escape_string($_POST['email'])."'
                                            '"
.mysql_real_escape_string($_POST['bericht'])."'
                                            '"
.mysql_real_escape_string($datum)."'
                                            )
                                        "
);
                                        
                    // Als de query is gelukt
                    if($sql)
                    {

                        echo 'Uw bericht is geplaatst<br>';
                        echo 'Klik <a href="Lees.php"> hier</a> om naar uw bericht te gaan';
                    }

                    // Anders
                    else
                    {
                        // MySql Error opvangen
                        echo 'Er is een fout opgetreden bij de query: <br />';
                        echo mysql_error();
                    }
                }
            }
        }
    }
}

// Anders
else
{
    // Het formulier
    echo '<form action="" method="post">';
        echo 'Naam: <input type="text" style="with:200px" name="naam"><br>';
        echo 'E-mail: <input type="text" style="with:200px" name="email"><br>';
        echo 'Bericht:<br>';
        echo '<textarea name="bericht" style="height: 162px; width: 361px"></textarea><br>';
        echo '<input type="submit" value="Verzenden">';
    echo '</form>';
}



?>

<html><body style="background-color: #FFFF00"></html>
 
PHP hulp

PHP hulp

24/11/2024 16:46:26
 
- SanThe -

- SanThe -

21/09/2010 14:10:03
Quote Anchor link
Je datumveld in de database is zo te zien geen DATE en ook geen DATETIME veld.

Toevoeging op 21/09/2010 14:11:25:

Verder missen er komma's in de query.
 
Ben Janssen

Ben Janssen

21/09/2010 14:14:32
Quote Anchor link
De datum is set to DATETIME, dit weet ik heel zeker, want het is een exacte kopie van.

Je bedoeld in het eerste gedeelte, van INSERT??
Gewijzigd op 21/09/2010 14:15:36 door Ben Janssen
 
- SanThe -

- SanThe -

21/09/2010 14:28:56
Quote Anchor link
Jij probeert dit in de database te zetten.

$datum = date("d.m.Y H:i");

Dit is echter tekst en géén datum.
Als jij een DATETIME gebruikt dan gaat dat niet lukken.
Gebruik dan gewoon NOW() in de query.
 
Ben Janssen

Ben Janssen

21/09/2010 14:38:12
Quote Anchor link
Ok, ik heb nu NOW() gebruikt, en krijg de volgende fout te zien.

Er is een fout opgetreden bij de query:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') VALUES ' at line 8
 
- SanThe -

- SanThe -

21/09/2010 14:52:40
Quote Anchor link
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
<?php
$sql
= "INSERT INTO gastenboek
        (
        naam,
        email,
        bericht,
        datum
        )
        VALUES
        (
        '"
.mysql_real_escape_string($_POST['naam'])."',
        '"
.mysql_real_escape_string($_POST['email'])."',
        '"
.mysql_real_escape_string($_POST['bericht'])."',
        NOW()
        )
        "
;
$res = mysql_query($sql);
if(!$res)
{

    echo 'Error: '. mysql_error();
}

// rest
?>
 
Niels K

Niels K

21/09/2010 15:10:04
Quote Anchor link
Verder is het beter om je controles uit te breiden. Je gebruikt nu alleen maar isset.
Maak gebruik van bijvoorbeeld de volgende functies

- empty
- strlen
- trim
- ctype_*
- preg_match
Gewijzigd op 21/09/2010 15:11:16 door Niels K
 
Pim -

Pim -

21/09/2010 15:33:40
Quote Anchor link
Leuk:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
            if(check_mail($_POST['email']))
            {

                echo 'U heeft geen geldige email ingevult';
            }

?>
 
Ben Janssen

Ben Janssen

21/09/2010 15:34:00
Quote Anchor link
Toppie SanThe, het werkt.

Nu moet ik uitvogelen waarom ik niets te zien krijg, allicht is de code in de lees.php pagina fout.

Als je suggesties hebt hoor ik ze graag.

Dank je

Toevoeging op 21/09/2010 15:35:47:

@Niels
die staan als functies in de ubb pagina, en werkt goed naar mijn verlangen.

Toevoeging op 21/09/2010 15:54:28:

Ok heb nu alles werken, bleek de SQL te zijn die verkeerd stond.

Bedankt allemaal
 



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.