Update werkt niet
Hoi,
Ik heb een scriptje geschreven die enkele gegevens update naar een database. Nu doet hij alles goed, behalve dat hij niks update. Dit is het update gedeelte:
Alvast bedankt,
Ik heb een scriptje geschreven die enkele gegevens update naar een database. Nu doet hij alles goed, behalve dat hij niks update. Dit is het update gedeelte:
Alvast bedankt,
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
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
<?php
include("database.php");
$id = $_POST["id"];
$dagnaam = $_POST["dagnaam"];
$dag = $_POST["dag"];
$maand = $_POST["maand"];
$jaar = $_POST["jaar"];
$datum_code = $jaar.$maand.$dag;
if($maand == '01'){ $maand = 'januari'; }
if($maand == '02'){ $maand = 'februari'; }
if($maand == '03'){ $maand = 'maart'; }
if($maand == '04'){ $maand = 'april'; }
if($maand == '05'){ $maand = 'mei'; }
if($maand == '06'){ $maand = 'juni'; }
if($maand == '07'){ $maand = 'juli'; }
if($maand == '08'){ $maand = 'augustus'; }
if($maand == '09'){ $maand = 'september'; }
if($maand == '10'){ $maand = 'oktober'; }
if($maand == '11'){ $maand = 'november'; }
if($maand == '12'){ $maand = 'december'; }
$datum = "$dagnaam".' '."$dag".' '."$maand".' '."$jaar";
$tijd = $_POST["tijd"];
$artiest = $_POST["artiest"];
$show = $_POST["show"];
$seizoen = $_POST["seizoen"];
$samenvat = $_POST["samenvat"];
$reactie = $_POST["reactie"];
$foto1 = $_FILES["foto1"];
$foto2 = $_FILES["foto2"];
$foto3 = $_FILES["foto3"];
$query = "UPDATE agenda SET
datum = '".$datum."',
tijd = '".$tijd."',
datum_code = '".$datum_code."',
artiest = '".$artiest."',
show = '".$show."',
seizoen = '".$seizoen."',
samenvat = '".$samenvat."',
reactie = '".$reactie."'
WHERE id = '$id'";
$result = mysql_query($query, $db);
?>
include("database.php");
$id = $_POST["id"];
$dagnaam = $_POST["dagnaam"];
$dag = $_POST["dag"];
$maand = $_POST["maand"];
$jaar = $_POST["jaar"];
$datum_code = $jaar.$maand.$dag;
if($maand == '01'){ $maand = 'januari'; }
if($maand == '02'){ $maand = 'februari'; }
if($maand == '03'){ $maand = 'maart'; }
if($maand == '04'){ $maand = 'april'; }
if($maand == '05'){ $maand = 'mei'; }
if($maand == '06'){ $maand = 'juni'; }
if($maand == '07'){ $maand = 'juli'; }
if($maand == '08'){ $maand = 'augustus'; }
if($maand == '09'){ $maand = 'september'; }
if($maand == '10'){ $maand = 'oktober'; }
if($maand == '11'){ $maand = 'november'; }
if($maand == '12'){ $maand = 'december'; }
$datum = "$dagnaam".' '."$dag".' '."$maand".' '."$jaar";
$tijd = $_POST["tijd"];
$artiest = $_POST["artiest"];
$show = $_POST["show"];
$seizoen = $_POST["seizoen"];
$samenvat = $_POST["samenvat"];
$reactie = $_POST["reactie"];
$foto1 = $_FILES["foto1"];
$foto2 = $_FILES["foto2"];
$foto3 = $_FILES["foto3"];
$query = "UPDATE agenda SET
datum = '".$datum."',
tijd = '".$tijd."',
datum_code = '".$datum_code."',
artiest = '".$artiest."',
show = '".$show."',
seizoen = '".$seizoen."',
samenvat = '".$samenvat."',
reactie = '".$reactie."'
WHERE id = '$id'";
$result = mysql_query($query, $db);
?>
Gewijzigd op 01/01/1970 01:00:00 door Niels
Zo op het eerste gezicht lijkt die query te kloppen, behalve dat bij WHERE id = '$id' er geen quotes om $id heen hoeven (ik neem aan dat id een INT is).
Maak er eens van
en kijk eens of je fouten krijgt
Maak er eens van
en kijk eens of je fouten krijgt
Gewijzigd op 01/01/1970 01:00:00 door Henk PHP
En welke foutmelding krijg je dan om je oren.
waarom heb je geen foutafhandeling
en waarom maak je zoveel overbodige variabelen aan
en waarom controleer je de $_POST waarden niet
en waarom gebruik je geen mysql_real_escape_string
en heb je al eens gekeken naar een var_dump van $_FILES
en waarom zit je zo te kloten met datum een datum sla je op in een DATE type veld met als format yyyy-mm-dd als je ene tijd erbij wilt hebben dan DATETIME in het format yyyy-mm-dd h:i:s
en bovenstaande gebruikt de kerkhof taktiek, dat is iets wat je dus zeer zeker niet zo moet coderen.
waarom heb je geen foutafhandeling
en waarom maak je zoveel overbodige variabelen aan
en waarom controleer je de $_POST waarden niet
en waarom gebruik je geen mysql_real_escape_string
en heb je al eens gekeken naar een var_dump van $_FILES
en waarom zit je zo te kloten met datum een datum sla je op in een DATE type veld met als format yyyy-mm-dd als je ene tijd erbij wilt hebben dan DATETIME in het format yyyy-mm-dd h:i:s
en bovenstaande gebruikt de kerkhof taktiek, dat is iets wat je dus zeer zeker niet zo moet coderen.
Gewijzigd op 01/01/1970 01:00:00 door Noppes
Wat Noppes zegt klopt, ik hoop dat dit gewoon een test scriptje is want in de praktijk is het nogal een drama.
Datum opslaan in DATETIME en het tonen van de dag/maand namen kan ook gewoon via een array.
Datum opslaan in DATETIME en het tonen van de dag/maand namen kan ook gewoon via een array.
Gewijzigd op 01/01/1970 01:00:00 door Henk PHP
Nee niet met een array maar gewoon met de datum tijd functies van je database
Met een beetje geluk kan je vaak de taal wel afdwingen....
Met een beetje geluk kan je vaak de taal wel afdwingen....
@ Noppes:
Natuurlijk heb ik wel een foutafhandeling
Natuurlijk controleer ik mijn Post vars
Ik maak die variabelen aan omdat ik ze dan zelf makkelijk kan aanpassen, mocht de datum veranderd moeten worden (wat ook moet gebeuren).
Als ik mijn hele script plaats wordt hij verwijderd dus ik heb een deel geplaatst.
Ik krijg geen foutmelding, zoals ik al heb beschreven doet hij alles goed, behalve het verwerken.
Natuurlijk heb ik wel een foutafhandeling
Natuurlijk controleer ik mijn Post vars
Ik maak die variabelen aan omdat ik ze dan zelf makkelijk kan aanpassen, mocht de datum veranderd moeten worden (wat ook moet gebeuren).
Als ik mijn hele script plaats wordt hij verwijderd dus ik heb een deel geplaatst.
Ik krijg geen foutmelding, zoals ik al heb beschreven doet hij alles goed, behalve het verwerken.
@Henk
Als ik aangeef dat hij een fout moet laten zien krijg ik:
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 'show = 'Nymfomannen (try out)', seizoen = '2008/2009', samenvat = 'N' at line 6
Als ik aangeef dat hij een fout moet laten zien krijg ik:
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 'show = 'Nymfomannen (try out)', seizoen = '2008/2009', samenvat = 'N' at line 6
'Niet:
Gewijzigd op 01/01/1970 01:00:00 door Niels
Je mag je tabel geen 'show' noemen. Dat is een 'reserveerd word' van mysql zelf.
Geweldig! Hij werkt hoor. Dit heb ik dus nooit geweten, zo'n fout maak je dus nooit meer. Al doende leert men.
Heel erg bedankt!
Heel erg bedankt!





