INSERT lukt niet
Code (php)
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
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
<?php
// Connection //
$conn_host = "localhost"; // MySQL host, standard 'localhost'
$conn_user = "***"; // MySQL login
$conn_pass = "***"; // MySQL password
$conn_db = "agenda"; // MySQL database to store data
if (!@mysql_select_db($conn_db, @mysql_connect($conn_host, $conn_user, $conn_pass)))
{
echo "Could not connect to database.";
exit();
}
$array_check = array ( "message" => "$post_mes",
"time_hour" => "$post_time",
"time_min" => "asd",
"date_day" => "$post_day",
"date_date" => "$post_date",
"date_month" => "$post_month",
"date_year" => "$post_year", );
echo "
<!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>Untitled Document</title>
</body>
</html>";
if (isset($_GET['submit']) &&
$_POST['message'] !="" &&
$_POST['time_hour'] !="" &&
$_POST['time_min'] !="" &&
$_POST['date_day'] !="" &&
$_POST['date_date'] !="" &&
$_POST['date_month'] !="" &&
$_POST['date_year'] !="")
{
$time = $_POST['time_hour'].$_POST['time_min'];
$message = htmlspecialchars ($_POST['message'], ENT_QUOTES);
$date_month = $_POST['date_month'];
$array_month = array(
"Januari" => "01",
"Februari" => "02",
"Maart" => "03",
"April" => "04",
"Mei" => "05",
"Juni" => "06",
"Juli" => "07",
"Augustus" => "08",
"September" => "09",
"Oktober" => "10",
"November" => "11",
"December" => "12");
foreach ($array_month as $month => $nr )
{
str_replace($month, $nr, $date_month);
}
$sql = "INSERT INTO agenda SET ";
$sql .= ", day = '" . $_POST['date_day'] . "'";
$sql .= ", date = '" . $_POST['date_date'] . "'";
$sql .= ", month = '" . $date_month . "'";
$sql .= ", year = '" . $_POST['date_year'] . "'";
$sql .= ", time = '" . $time . "'";
$sql .= ", message = '" . $message . "'";
$res = mysql_query ($sql);
if ($res)
{
echo "Bericht toegevoegd.<p>";
echo "Ga naar de <a href=\"gastenboek.php\">berichten</a>.";
}
else { echo "Bericht NIET toegevoegd. Er is iets misgegaan met het invoeren in de database."; }
}
?>
// Connection //
$conn_host = "localhost"; // MySQL host, standard 'localhost'
$conn_user = "***"; // MySQL login
$conn_pass = "***"; // MySQL password
$conn_db = "agenda"; // MySQL database to store data
if (!@mysql_select_db($conn_db, @mysql_connect($conn_host, $conn_user, $conn_pass)))
{
echo "Could not connect to database.";
exit();
}
$array_check = array ( "message" => "$post_mes",
"time_hour" => "$post_time",
"time_min" => "asd",
"date_day" => "$post_day",
"date_date" => "$post_date",
"date_month" => "$post_month",
"date_year" => "$post_year", );
echo "
<!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>Untitled Document</title>
</body>
</html>";
if (isset($_GET['submit']) &&
$_POST['message'] !="" &&
$_POST['time_hour'] !="" &&
$_POST['time_min'] !="" &&
$_POST['date_day'] !="" &&
$_POST['date_date'] !="" &&
$_POST['date_month'] !="" &&
$_POST['date_year'] !="")
{
$time = $_POST['time_hour'].$_POST['time_min'];
$message = htmlspecialchars ($_POST['message'], ENT_QUOTES);
$date_month = $_POST['date_month'];
$array_month = array(
"Januari" => "01",
"Februari" => "02",
"Maart" => "03",
"April" => "04",
"Mei" => "05",
"Juni" => "06",
"Juli" => "07",
"Augustus" => "08",
"September" => "09",
"Oktober" => "10",
"November" => "11",
"December" => "12");
foreach ($array_month as $month => $nr )
{
str_replace($month, $nr, $date_month);
}
$sql = "INSERT INTO agenda SET ";
$sql .= ", day = '" . $_POST['date_day'] . "'";
$sql .= ", date = '" . $_POST['date_date'] . "'";
$sql .= ", month = '" . $date_month . "'";
$sql .= ", year = '" . $_POST['date_year'] . "'";
$sql .= ", time = '" . $time . "'";
$sql .= ", message = '" . $message . "'";
$res = mysql_query ($sql);
if ($res)
{
echo "Bericht toegevoegd.<p>";
echo "Ga naar de <a href=\"gastenboek.php\">berichten</a>.";
}
else { echo "Bericht NIET toegevoegd. Er is iets misgegaan met het invoeren in de database."; }
}
?>
Als ik dit script uitvoer, krijg ik een foutmelding (dat het plaatsen niet is gelukt, zie regel 77). Wat gaat er fout? en waarom?
(en ja: de array $array_check is niet zeer nuttig, maar die heb ik later nog nodig...)
Gewijzigd op 01/01/1970 01:00:00 door Peter Somhorst
echo de $sql en voer die eens in in PHPMyAdmin ofzo.
___
edit
't is al gelukt:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
foreach ($array_month as $month => $nr )
{
$date_month = str_replace ($month, $nr, $date_month);
}
?>
foreach ($array_month as $month => $nr )
{
$date_month = str_replace ($month, $nr, $date_month);
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Peter Somhorst
Quote:
$sql = "INSERT INTO agenda SET ";
$sql .= ", day = '" . $_POST['date_day'] . "'";
$sql .= ", date = '" . $_POST['date_date'] . "'";
$sql .= ", month = '" . $date_month . "'";
$sql .= ", year = '" . $_POST['date_year'] . "'";
$sql .= ", time = '" . $time . "'";
$sql .= ", message = '" . $message . "'";
$sql .= ", day = '" . $_POST['date_day'] . "'";
$sql .= ", date = '" . $_POST['date_date'] . "'";
$sql .= ", month = '" . $date_month . "'";
$sql .= ", year = '" . $_POST['date_year'] . "'";
$sql .= ", time = '" . $time . "'";
$sql .= ", message = '" . $message . "'";
Sinds wanneer heb je 5 (vijf) velden nodig om 1 (één) datum met tijd weg te schrijven? Komt nog eens bij dat je vervolgens helemaal niets meer kunt doen met deze data zonder eerst de hele zooi weer aan elkaar te plakken.
Gebruik een DATETIME en klaar ben je. Dat is dus slechts 1 veld en je krijgt enige tientallen datum- en tijdfuncties cadeau. Zie ook hoofdstuk 12.5 van de MySQL-handleiding.
Frank:
Sinds wanneer heb je 5 (vijf) velden nodig om 1 (één) datum met tijd weg te schrijven? Komt nog eens bij dat je vervolgens helemaal niets meer kunt doen met deze data zonder eerst de hele zooi weer aan elkaar te plakken.
Gebruik een DATETIME en klaar ben je. Dat is dus slechts 1 veld en je krijgt enige tientallen datum- en tijdfuncties cadeau. Zie ook hoofdstuk 12.5 van de MySQL-handleiding.
Quote:
$sql = "INSERT INTO agenda SET ";
$sql .= ", day = '" . $_POST['date_day'] . "'";
$sql .= ", date = '" . $_POST['date_date'] . "'";
$sql .= ", month = '" . $date_month . "'";
$sql .= ", year = '" . $_POST['date_year'] . "'";
$sql .= ", time = '" . $time . "'";
$sql .= ", message = '" . $message . "'";
$sql .= ", day = '" . $_POST['date_day'] . "'";
$sql .= ", date = '" . $_POST['date_date'] . "'";
$sql .= ", month = '" . $date_month . "'";
$sql .= ", year = '" . $_POST['date_year'] . "'";
$sql .= ", time = '" . $time . "'";
$sql .= ", message = '" . $message . "'";
Sinds wanneer heb je 5 (vijf) velden nodig om 1 (één) datum met tijd weg te schrijven? Komt nog eens bij dat je vervolgens helemaal niets meer kunt doen met deze data zonder eerst de hele zooi weer aan elkaar te plakken.
Gebruik een DATETIME en klaar ben je. Dat is dus slechts 1 veld en je krijgt enige tientallen datum- en tijdfuncties cadeau. Zie ook hoofdstuk 12.5 van de MySQL-handleiding.
dat is niet waar (denk ik)...
Stel je wil alleen weten in welke maand er iets gebeurt? dan kan je dat gebruiken op die manier.. of jaar... (tenzij frank nu even met een geniale oplossing komt, of iemand anders...)... (zo, ja: dan wil ik het ook wel weten!)
En btw: weet je dat hoofdstuk serieus wéér uit je hoofd? :p
Voorbeeldje om alle records van de maand mei op te halen:
En dat ik het hoofdstuknummer uit mijn hoofd ken, is niet zo bijzonder. Rekenen met datums is zo'n beetje de meest toegepaste functie binnen mijn systemen. Dan moet je wel over een goede handleiding beschikken.
Kortom: Gebruik ALTIJD een DATE of een DATETIME.