Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

date blijft 00:00:00 bij schrijven naar database

Pagina: 1
Acties:
  • 382 views

  • Rj-
  • Registratie: Augustus 2006
  • Laatst online: 15-11 11:13
Hey,

Ik probeer het nog 1 keer! Ik ben nu klaar met debuggen en heb alle fouten eruit gehaald mijn gastenboek werkt nu volgens het boek.

Alleen krijg ik bij date alleen 00:00:00 na het posten van een post

Ik had dit verandert naar (zie 2de code)

$query="INSERT INTO gastenboek (voornaam, achternaam, email, datum, bijdrage) ";
$query .= "VALUES ('"; // let op positie van de enkele aanhalingstekens
$query .= $_POST["voornaam"] ."', '" ;
$query .= $_POST["achternaam"] ."', '" ;
$query .= $_POST["email"] ."', '" ;
$query .= $_POST["datum"] . "', '" ;
$query .= $_POST["bijdrage"] ."');";
$result = mysql_query($query) or die ("FOUT: " . mysql_error());

$query="INSERT INTO gastenboek (voornaam, achternaam, email, bijdrage, datum) ";
$query .= "VALUES ('"; // let op positie van de enkele aanhalingstekens
$query .= $_POST["voornaam"] ."', '" ;
$query .= $_POST["achternaam"] ."', '" ;
$query .= $_POST["email"] ."', '" ;
$query .= $_POST["bijdrage"] ."');";
$query .= $_POST["datum"] . "', '"
;
$result = mysql_query($query) or die ("FOUT: " . mysql_error());

Maar dan krijg ik een syntax error..

FOUT: 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 ';22-08-2008', '' at line 1


gastenboek_schrijf.php

code:
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
<?php
/*
Let op: dit script is wellicht niet zonder meer te gebruiken op uw server.
Maak eerst een database aan met de velden id, voornaam, achternaam,
email, datum en bijdrage, op de wijze zoals in het boek wordt beschreven.

Neem in het geval van 
MySQL ook de juiste gegevens op voor uw hostname, databasename, enzovoort.
*/

// variabelen initialiseren:
$host="localhost";
$username="root";
$dbnaam="zomertaak";
$db=mysql_connect($host, $username) or die (mysql_error());
mysql_select_db($dbnaam, $db) or die (mysql_error());

if (empty($_POST)){
    // eerst controleren of pagina wel is aangeroepen vanuit gastenboek
    echo("Schrijf eerst <a href=\"eindoefening_h12_2.php\">een bijdrage</a>");
        exit();
}else{
    // OK, Query opbouwen met variabelen in $_POST
    $query="INSERT INTO gastenboek (voornaam, achternaam, email, datum, bijdrage) ";
    $query .= "VALUES ('"; // let op positie van de enkele aanhalingstekens 
    $query .= $_POST["voornaam"] ."', '" ;
    $query .= $_POST["achternaam"] ."', '" ;
    $query .= $_POST["email"] ."', '" ;
    $query .= $_POST["datum"] . "', '" ;
    $query .= $_POST["bijdrage"] ."');";
    $result = mysql_query($query) or die ("FOUT: " . mysql_error());
}
?>
<html>
<head>
    <title>Een bijdrage aan het gastenboek invoegen</title>
</head>
<body>
<?php
    echo("<h2>Bedankt voor uw bijdrage!</h2>\n");
    echo("De volgende gegevens zijn ingevoegd:<br>\n");
    echo("Voornaam: <b>".  $_POST["voornaam"] . "</b><br>");
    echo("Achternaam: <b>".  $_POST["achternaam"] . "</b><br>");
    echo("E-mailadres: <b>".  $_POST["email"] . "</b><br>");
    echo("Uw bijdrage: <b>".  $_POST["bijdrage"] . "</b><br>");
    echo("<hr><a href=\"eindoefening_h12_2.php\">Nog een bijdrage schrijven</a> |
        <a href=\"gastenboek_lees.php\">Overzicht van alle bijdragen</a>");
?>
</body>
</html>

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Rj- schreef op vrijdag 22 augustus 2008 @ 13:04:
FOUT: 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 ';22-08-2008', '' at line 1
WTF doet die : dan in die string?
Syntax errors kan je _altijd_ zelf spotten door goed de query na te lezen.

{signature}


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Rj- schreef op vrijdag 22 augustus 2008 @ 13:04:
$query .= $_POST["bijdrage"] ."');";
$query .= $_POST["datum"] . "', '"
;
$result = mysql_query($query) or die ("FOUT: " . mysql_error());

Maar dan krijg ik een syntax error..

FOUT: 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 ';22-08-2008', '' at line 1
Lees die foutmelding eens goed en bekijk de query die je daar opbouwt, zeker dat stuk wat je zelf hebt aangegeven. Je ziet dat MySQL aangeeft dat er een probleem zit daar bij die ; voor de datum. Met andere woorden: Wat doet die ; en dat haakje daar ;)

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Ga nou zelf eens debuggen. Echo je query en je zult meteen zien wat er mis gaat.

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


  • Flipke84
  • Registratie: Juli 2008
  • Laatst online: 09-11-2024
Je moet dit:

code:
1
2
$query .= $_POST["bijdrage"] ."');";
$query .= $_POST["datum"] . "', '" ;


Veranderen in dit:

code:
1
2
$query .= $_POST["bijdrage"] ."',";
$query .= $_POST["datum"] . "'); '" ;

  • H004
  • Registratie: Maart 2006
  • Laatst online: 28-05 19:55
als het veld in de database van het date-type is, dan moet je datum anders geformuleerd worden:

2008-08-22 (yyyy-mm-dd), oftewel, verander regel 30 in:

PHP:
1
    $query .= date("Y-m-d") . "', '" ;

  • DukeMan
  • Registratie: Mei 2000
  • Niet online
In het tweede stuk code gaat het fout omdat je ) van het einde van het values stuk niet achter de datum heb gezet en de komma achter datum niet hebt gezet achter bijdrage.

Ik ken verder MySQL niet goed, maar wellicht dat hij het formaat van de datum 22-08-2008 niet snapt en het in het formaat 2008-08-22 of 08-22-2008 wilt binnen krijgen?

  • Noork
  • Registratie: Juni 2001
  • Niet online
Even afgezien het haakje. Gebruik je sowieso wel de goede notatie van de datum? Moet het niet zijn 2008-08-22 ?

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Naast bovenstaande opmerkingen:
Waarom stuur je een datum naar de client om die vervolgens bij de form submit weer te inserten in de database?
Je krijgt dan de datum van het opvragen van de pagina. Logischer is de datum van submit te registreren en dan hoeft deze dus helemaal niet naar de client.

Who is John Galt?


  • kalechinees
  • Registratie: Mei 2005
  • Laatst online: 21-04 15:02
Waarom gebruik je geen timestamp? Zo sla de de datum op zonder afhankelijk te zijn van datum notities...

  • Rj-
  • Registratie: Augustus 2006
  • Laatst online: 15-11 11:13
Datum wordt al met het formulier mee genomen heren.

code:
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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Ons gastenboek</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<h2>Teken ons gastenboek!</h2>
<form name="form1" method="post" action="gastenboek_schrijf.php">
    
  <table border="0">
    <tr align="left" valign="top">
      <td align="right">Voornaam</td>
      <td>
<input name="voornaam" type="text" id="voornaam" size="30"></td>
    </tr>
    <tr align="left" valign="top">
      <td align="right">Achternaam</td>
      <td>
<input name="achternaam" type="text" id="achternaam" size="30"></td>
    </tr>
    <tr align="left" valign="top">
      <td align="right">e-mailadres</td>
      <td>
<input name="email" type="text" id="email" size="30"></td>
    </tr>
    <tr align="left" valign="top">
      <td align="right">Uw bijdrage:</td>
      <td>
<textarea name="bijdrage" cols="45" rows="10"></textarea></td>
    </tr>
    <tr align="left" valign="top">
      <td align="right">&nbsp;</td>
      <td><input type="submit" name="Submit" value="Verzenden">
        <input name="reset" type="reset" id="reset" value="Leegmaken">
        <input name="datum" type="hidden" id="datum" value="<?php echo(date("d-m-Y"));?>"></td>
    </tr>
  </table>
</form>
<p><a href="gastenboek_lees.php">Bekijk alle bijdragen in het gastenboek</a></p>
</body>
</html>

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Rj- schreef op vrijdag 22 augustus 2008 @ 13:12:
Datum wordt al met het formulier mee genomen heren.
Ja, en dat is onzinnig. Ook al is het een hidden element, iedere kleuter met kladblok (of de Developer Toolbar, of Firebug) kan dus de datum veranderen en bijvoorbeeld een bericht plaatsen in het jaar 9999, waardoor zijn bericht altijd bovenaan zal blijven staan.

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


  • sky-
  • Registratie: November 2005
  • Niet online

sky-

qn nna 👌

Kan je niet beter NOW() gebruiken?

don't be afraid of machines, be afraid of the people who build and train them.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Euh, los van het feit dat je hier je code dumpt en ons verder niet echt meewerkt geven we ook nog eens geen support op code van derden; aangepast of niet. Het idee achter programmeren is dat je zélf weet waar je mee bezig bent als je aanpassingen maakt. Dit moet met basic debug werk prima op te lossen zijn en met bovenstaande tips moet je er verder dan ook prima uit kunnen komen. Als je de foutmelding gewoon gelezen had was dit topic niet nodig geweest.

Zie ook Debuggen: Hoe doe ik dat?

Voordat je overigens een nieuw topic opent in PRG (voor een volgende keer dus); neem het volgende dan even door: Programming Beleid Quickstart

[ Voor 38% gewijzigd door RobIII op 22-08-2008 13:21 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1

Dit topic is gesloten.