MySQL records aanpassen
Wanneer ik puur alleen het update php script laad krijg ik de volgende melding:
Warning: mysql_query() expects parameter 2 to be resource, null given in /.../facturen/updateform.php on line 12
Hier het index script:
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
80
81
82
83
84
85
86
87
88
89
90
91
92
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
<?PHP
mysql_connect("localhost","user","wachtwoord");
mysql_select_db("databasenaam hier");
$sql="SELECT * from contacts ORDER BY factnum ASC";
$pageTitle = "Facturen administratie";
print <<<HERE
<h2>Facturen</h2>
Selecteer een factuur om te bewerken of te verwijderen of <a href="add.php">voeg een nieuwe factuur</a> toe.<br/><br/>
<table id="home">
HERE;
$sql = mysql_query("SELECT * FROM formulier");
$factnum = 'factnum';
$bedrijfsnaam = 'bedrijfsnaam';
$contactpersoon = 'contactpersoon';
$phone = 'phone';
$email = 'email';
$object = 'object';
$date = 'date';
$amount = 'amount';
$betalingstermijn = 'betalingstermijn';
$voldaan = 'voldaan';
$comments = 'comments';
while ($rows = mysql_fetch_assoc($sql)){
print <<<HERE
<table width="48%" border="10">
<tr>
<td width="35%"><div align="right">
<form method="POST action="confirmdelete.php">
<input type="hidden" name="sel_record" value="$id">
<input type="submit" name="delete" value="Verwijder "></form></div></td>
<td width="65%"><div align="left">
<form method="POST action="updateform.php">
<input type="hidden" name="sel_record" value="$id">
<input type="submit" name="update" value="Bijwerken "></form>
</div></td>
</tr>
<tr>
<td><div align="right"><strong>Factuurnummer:</strong></div></td>
<td><div align="left">$rows[$factnum]</div></td>
</tr>
<tr>
<td><div align="right"><strong>Bedrijfsnaam:</strong></div></td>
<td><div align="left">$rows[$bedrijfsnaam]</div></td>
</tr>
<tr>
<td><div align="right"><strong>Contactpersoon:</strong></div></td>
<td><div align="left">$rows[$contactpersoon]</div></td>
</tr>
<tr>
<td><div align="right"><strong>Telefoonnummer:</strong></div></td>
<td><div align="left">$rows[$phone]</div></td>
</tr>
<tr>
<td><div align="right"><strong>E-mail</strong></div></td>
<td><div align="left">$rows[$email]</div></td>
</tr>
<tr>
<td><div align="right"><strong>Evenement / object:</strong></div></td>
<td><div align="left">$rows[$object]</div></td>
</tr>
<tr>
<td><div align="right"><strong>Factuurdatum:</strong></div></td>
<td><div align="left">$rows[$date]</div></td>
</tr>
<tr>
<td><div align="right"><strong>Factuurbedrag:</strong></div></td>
<td><div align="left">$rows[$amount]</div></td>
</tr>
<tr>
<td><div align="right"><strong>Betalingstermijn: </strong></div></td>
<td><div align="left">$rows[$betalingstermijn]</div></td>
</tr>
<tr>
<td><div align="right"><strong>reeds voldaan: </strong></div></td>
<td><div align="left">$rows[$voldaan]</div></td>
</tr>
<tr>
<td><div align="right"><strong>Opmerkingen:</strong></div></td>
<td><div align="left">$rows[$comments]</div></td>
</tr>
</table><p></td></tr>
HERE;
}
?>
mysql_connect("localhost","user","wachtwoord");
mysql_select_db("databasenaam hier");
$sql="SELECT * from contacts ORDER BY factnum ASC";
$pageTitle = "Facturen administratie";
print <<<HERE
<h2>Facturen</h2>
Selecteer een factuur om te bewerken of te verwijderen of <a href="add.php">voeg een nieuwe factuur</a> toe.<br/><br/>
<table id="home">
HERE;
$sql = mysql_query("SELECT * FROM formulier");
$factnum = 'factnum';
$bedrijfsnaam = 'bedrijfsnaam';
$contactpersoon = 'contactpersoon';
$phone = 'phone';
$email = 'email';
$object = 'object';
$date = 'date';
$amount = 'amount';
$betalingstermijn = 'betalingstermijn';
$voldaan = 'voldaan';
$comments = 'comments';
while ($rows = mysql_fetch_assoc($sql)){
print <<<HERE
<table width="48%" border="10">
<tr>
<td width="35%"><div align="right">
<form method="POST action="confirmdelete.php">
<input type="hidden" name="sel_record" value="$id">
<input type="submit" name="delete" value="Verwijder "></form></div></td>
<td width="65%"><div align="left">
<form method="POST action="updateform.php">
<input type="hidden" name="sel_record" value="$id">
<input type="submit" name="update" value="Bijwerken "></form>
</div></td>
</tr>
<tr>
<td><div align="right"><strong>Factuurnummer:</strong></div></td>
<td><div align="left">$rows[$factnum]</div></td>
</tr>
<tr>
<td><div align="right"><strong>Bedrijfsnaam:</strong></div></td>
<td><div align="left">$rows[$bedrijfsnaam]</div></td>
</tr>
<tr>
<td><div align="right"><strong>Contactpersoon:</strong></div></td>
<td><div align="left">$rows[$contactpersoon]</div></td>
</tr>
<tr>
<td><div align="right"><strong>Telefoonnummer:</strong></div></td>
<td><div align="left">$rows[$phone]</div></td>
</tr>
<tr>
<td><div align="right"><strong>E-mail</strong></div></td>
<td><div align="left">$rows[$email]</div></td>
</tr>
<tr>
<td><div align="right"><strong>Evenement / object:</strong></div></td>
<td><div align="left">$rows[$object]</div></td>
</tr>
<tr>
<td><div align="right"><strong>Factuurdatum:</strong></div></td>
<td><div align="left">$rows[$date]</div></td>
</tr>
<tr>
<td><div align="right"><strong>Factuurbedrag:</strong></div></td>
<td><div align="left">$rows[$amount]</div></td>
</tr>
<tr>
<td><div align="right"><strong>Betalingstermijn: </strong></div></td>
<td><div align="left">$rows[$betalingstermijn]</div></td>
</tr>
<tr>
<td><div align="right"><strong>reeds voldaan: </strong></div></td>
<td><div align="left">$rows[$voldaan]</div></td>
</tr>
<tr>
<td><div align="right"><strong>Opmerkingen:</strong></div></td>
<td><div align="left">$rows[$comments]</div></td>
</tr>
</table><p></td></tr>
HERE;
}
?>
Dan het update script:
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
80
81
82
83
84
85
86
87
88
89
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
<?PHP
mysql_connect("localhost","user","wachtwoord");
mysql_select_db("databasenaam hier");
$sel_record = $_POST[sel_record];
//SQL statement om informatie te selecteren
$sql = "SELECT * FROM contacts WHERE id = '$sel_record'";
// uitvoeren SQL query en verkrijg het resultaat
$result = mysql_query($sql, $db) or die (mysql_error());
if (!$result) {
print "<hi>ER is een fout opgetreden!</h1>";
} else {
// ga door records en verkrijg waarden
while ($record = mysql_fetch_array($result)) {
$id = $record['id'];
$factnum = $record['factnum'];
$bedrijfsnaam = $record['bedrijfsnaam'];
$contactpersoon = $record['contactpersoon'];
$phone = $record['phone'];
$email = $record['email'];
$object = $record['object'];
$date = $record['date'];
$amount = $record['amount'];
$betalingstermijn = $record['betalingstermijn'];
$voldaan = $record['voldaan'];
$comments = $record['comments'];
} // Einde lus
$pageTitle = "Bewerk een factuur";
print <<<HERE
<h2>Bewerk deze factuur</h2>
<p>Verander de waardes in de tekstboxen en click op de "bewerk factuur" knop.</p>
<p>img src="$filename" /></p>
<form id = "myForm" method="POST" action="update.php">
<input type="hidden" name="id" value="$id">
<div>
<label for="factnum">Factuurnummer:</label>
<input type="tekst" name="factnum" id="factnum" value="$factnum">
</div>
<div>
<label for="bedrijfsnaam">Bedrijfsnaam:</label>
<input type="tekst" name="bedrijfsnaam" id="bedrijfsnaam" value="$bedrijfsnaam">
</div>
<div>
<label for="contactpersoon">Contactpersoon:</label>
<input type="tekst" name="contactpersoon" id="contactpersoon" value="$contactpersoon">
</div>
<div>
<label for="phone">Telefoonnummer:</label>
<input type="tekst" name="phone" id="phone" value="$phone">
</div>
<div>
<label for="email">E-mail:</label>
<input type="tekst" name="email" id="email" value="$email">
</div>
<div>
<label for="object">Object / evenement:</label>
<input type="tekst" name="object" id="object" value="$object">
</div>
<div>
<label for="date">Factuurdatum:</label>
<input type="tekst" name="date" id="date" value="$date">
</div>
<div>
<label for="amount">Factuurbedrag:</label>
<input type="tekst" name="amount" id="amount" value="$amount">
</div>
<div>
<label for="betalingstermijn">Betalingstermijn</label>
<input type="tekst" name="betalingstermijn" id="betalingstermijn" value="$betalingstermijn">
</div>
<div>
<label for="voldaan">Voldaan</label>
<input type="tekst" name="voldaan" id="voldaan" value="$voldaan">
</div>
<div>
<label for="bedrijfsnaam">Opmerkingen:</label>
<input type="tekst" name="comments" id="comments" value="$comments">
</div>
</form>
HERE;
}
?>
mysql_connect("localhost","user","wachtwoord");
mysql_select_db("databasenaam hier");
$sel_record = $_POST[sel_record];
//SQL statement om informatie te selecteren
$sql = "SELECT * FROM contacts WHERE id = '$sel_record'";
// uitvoeren SQL query en verkrijg het resultaat
$result = mysql_query($sql, $db) or die (mysql_error());
if (!$result) {
print "<hi>ER is een fout opgetreden!</h1>";
} else {
// ga door records en verkrijg waarden
while ($record = mysql_fetch_array($result)) {
$id = $record['id'];
$factnum = $record['factnum'];
$bedrijfsnaam = $record['bedrijfsnaam'];
$contactpersoon = $record['contactpersoon'];
$phone = $record['phone'];
$email = $record['email'];
$object = $record['object'];
$date = $record['date'];
$amount = $record['amount'];
$betalingstermijn = $record['betalingstermijn'];
$voldaan = $record['voldaan'];
$comments = $record['comments'];
} // Einde lus
$pageTitle = "Bewerk een factuur";
print <<<HERE
<h2>Bewerk deze factuur</h2>
<p>Verander de waardes in de tekstboxen en click op de "bewerk factuur" knop.</p>
<p>img src="$filename" /></p>
<form id = "myForm" method="POST" action="update.php">
<input type="hidden" name="id" value="$id">
<div>
<label for="factnum">Factuurnummer:</label>
<input type="tekst" name="factnum" id="factnum" value="$factnum">
</div>
<div>
<label for="bedrijfsnaam">Bedrijfsnaam:</label>
<input type="tekst" name="bedrijfsnaam" id="bedrijfsnaam" value="$bedrijfsnaam">
</div>
<div>
<label for="contactpersoon">Contactpersoon:</label>
<input type="tekst" name="contactpersoon" id="contactpersoon" value="$contactpersoon">
</div>
<div>
<label for="phone">Telefoonnummer:</label>
<input type="tekst" name="phone" id="phone" value="$phone">
</div>
<div>
<label for="email">E-mail:</label>
<input type="tekst" name="email" id="email" value="$email">
</div>
<div>
<label for="object">Object / evenement:</label>
<input type="tekst" name="object" id="object" value="$object">
</div>
<div>
<label for="date">Factuurdatum:</label>
<input type="tekst" name="date" id="date" value="$date">
</div>
<div>
<label for="amount">Factuurbedrag:</label>
<input type="tekst" name="amount" id="amount" value="$amount">
</div>
<div>
<label for="betalingstermijn">Betalingstermijn</label>
<input type="tekst" name="betalingstermijn" id="betalingstermijn" value="$betalingstermijn">
</div>
<div>
<label for="voldaan">Voldaan</label>
<input type="tekst" name="voldaan" id="voldaan" value="$voldaan">
</div>
<div>
<label for="bedrijfsnaam">Opmerkingen:</label>
<input type="tekst" name="comments" id="comments" value="$comments">
</div>
</form>
HERE;
}
?>
Sorry als het allemaal wat warrig staat.. Kan iemand mij vertellen wat er fout is..?
Er mist een dubbele quote achter POST, daardoor wordt dat niet gelezen en wordt het via een GET request verstuurd.
Ten tweede controleer je in je update pagina helemaal niet of er wel een POST request is gedaan en is dit ook een foute manier van een array aanspreken:
Warning: mysql_query() expects parameter 2 to be resource, null given in /../../facturen/updateform.php on line 12
Dit gaat blijkbaar over:
Enig idee wat hier mis mee is?
Dank je!
Gewijzigd op 11/02/2013 14:49:16 door Arjan van Rossen
De warning zegt het zelf al, mysql_query verwacht dat de tweede parameter een resource is, maar je geeft null mee. Oftwel, $db is niet wat het moet zijn. Het moet een link zijn naar de database (een resource), maar het is null (helemaal niets, bestaat niet). Het connecten met de database is dus fout gegaan. Met goede foutafhandeling kan je dat zelf heel snel vinden.
Betekend dit dat ik nog ergens $db moet specificeren of snap ik het niet goed. Ik heb wel de or die (mysql_error())tekst weggehaald. Als ik $db helemaal weghaal verschijnt wel het formulier maar is hij helemaal leeg. Ik neem aan dat $db de inhoud hierin geeft..?
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
mysql_connect("localhost","user","wachtwoord");
mysql_select_db("databasenaam hier");
?>
mysql_connect("localhost","user","wachtwoord");
mysql_select_db("databasenaam hier");
?>
Staat dit zo letterlijk in je script, of zijn dit allemaal fictieve waardes om ervoor te zorgen dat je gegevens niet leesbaar zijn? Het laatst is uiteraard prima, het eerste dan zal je nooit toegang krijgen tot je database.
Daarna kan je bij beide functies kijken hoe het zit met de return waarde. Beide geven namelijk een resource terug, of false als het niet gelukt is. Beide zou je dus moeten controleren om te zien of je wel verbinding met de database hebt.
Arjan van Rossen op 11/02/2013 15:25:41:
Betekend dit dat ik nog ergens $db moet specificeren
Ja.
Dat is de return van mysql_connect.
Dus:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
...
$db = mysql_connect("localhost","user","wachtwoord");
mysql_select_db("databasenaam hier");
...
?>
...
$db = mysql_connect("localhost","user","wachtwoord");
mysql_select_db("databasenaam hier");
...
?>
Dit zijn ficieve waardes die ik erin gezet heb toen ik het script hier plaatste. Ik gebruik dezelfde waarde in de index.php pagina waar de inhoud van de database getoont word en dit lijkt gewoon te werken. Blijft dus over waarom hij problemen heeft met $db
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
//index
$sql = mysql_query("SELECT * FROM formulier");
//update
$result = mysql_query($sql, $db)
?>
//index
$sql = mysql_query("SELECT * FROM formulier");
//update
$result = mysql_query($sql, $db)
?>
Iedereen bedankt voor de hulp!
In jouw geval lijkt dat niet zo te zijn dat je met meerdere databases werkt, dus kan $db achterwege gelaten worden.
Om het probleem in je script op te lossen kun je:
1. $db = mysql_connect("localhost", "user", "wachtwoord") uitvoeren, om een resource waarde in $db te krijgen
2. regel 12: $result = mysql_query($sql) or die (mysql_error());
dus zonder $db erbij.
Als je dan nog een leeg formulier krijgt, denk ik dat je in regel 9 van je query de opgehaalde id niet tussen single quotes ('') moet zetten (ten minste, ik neem aan dat id een getal is).
Je regel wordt dan (sorry voor het niet weten van de code-quotes):
$sql = "SELECT * FROM contacts WHERE id = " . $sel_record;
Toevoeging op 11/02/2013 17:20:44:
Overigens wanneer ik de wijzigingen submit kom ik op de volgende error uit door update.php welke ik hieronder zal plaatsen.
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 'betalingstermijn='30', voldaan='ja', comments='geen', where id=''' at line 10
Enig idee wat hier de rede van is..?
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
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
<?php
include "dbinfo.php";
$id = $_POST[id];
$factnum = $_POST[factnum];
$bedrijfsnaam = $_POST[bedrijfsnaam];
$contactpersoon = $_POST[contactpersoon];
$phone = $_POST[phone];
$email = $_POST[email];
$object = $_POST[object];
$date = $_POST[date];
$amount = $_POST[amount];
$betalingstermijn = $_POST[betalingstermijn];
$voldaan = $_POST[voldaan];
$comments = $_POST[comments];
$sql="UPDATE contacts SET
factnum='$factnum',
bedrijfsnaam='$bedrijfsnaam',
contactpersoon= '$contactpersoon',
phone='$phone',
email='$email',
object='$object',
date='$date',
amount='$amount'
betalingstermijn='$betalingstermijn',
voldaan='$voldaan',
comments='$comments',
where id='$id' ";
$result=mysql_query($sql) or die (mysql_error());
print "<html><head><title>Update Results</title></head><body>";
include "header.php";
print <<<HERE
<h1>The new record looks like this: </h1>
<p><strong>Factuurnummer:</strong>$factnum</p>
<p><strong>Bedrijfsnaam:</strong> $bedrijfsnaam</p>
<p><strong>Contactpersoon:</strong> $contactpersoon</p>
<p><strong>Phone:</strong> $phone</p>
<p><strong>E-mail:</strong>$email</p>
<p><strong>Object / evenement:</strong> $object</p>
<p><strong>Factuurdatum:</strong> $date</p>
<p><strong>Factuurbedrag:</strong> $amount</p>
<p><strong>Betalingstermijn:</strong>$betalingstermijn</p>
<p><strong>Voldaan:</strong> $voldaan</p>
<p><strong>Opmerkingen:</strong> $comments</p>
HERE;
?>
include "dbinfo.php";
$id = $_POST[id];
$factnum = $_POST[factnum];
$bedrijfsnaam = $_POST[bedrijfsnaam];
$contactpersoon = $_POST[contactpersoon];
$phone = $_POST[phone];
$email = $_POST[email];
$object = $_POST[object];
$date = $_POST[date];
$amount = $_POST[amount];
$betalingstermijn = $_POST[betalingstermijn];
$voldaan = $_POST[voldaan];
$comments = $_POST[comments];
$sql="UPDATE contacts SET
factnum='$factnum',
bedrijfsnaam='$bedrijfsnaam',
contactpersoon= '$contactpersoon',
phone='$phone',
email='$email',
object='$object',
date='$date',
amount='$amount'
betalingstermijn='$betalingstermijn',
voldaan='$voldaan',
comments='$comments',
where id='$id' ";
$result=mysql_query($sql) or die (mysql_error());
print "<html><head><title>Update Results</title></head><body>";
include "header.php";
print <<<HERE
<h1>The new record looks like this: </h1>
<p><strong>Factuurnummer:</strong>$factnum</p>
<p><strong>Bedrijfsnaam:</strong> $bedrijfsnaam</p>
<p><strong>Contactpersoon:</strong> $contactpersoon</p>
<p><strong>Phone:</strong> $phone</p>
<p><strong>E-mail:</strong>$email</p>
<p><strong>Object / evenement:</strong> $object</p>
<p><strong>Factuurdatum:</strong> $date</p>
<p><strong>Factuurbedrag:</strong> $amount</p>
<p><strong>Betalingstermijn:</strong>$betalingstermijn</p>
<p><strong>Voldaan:</strong> $voldaan</p>
<p><strong>Opmerkingen:</strong> $comments</p>
HERE;
?>
Ik zie zo direct twee fouten :
- er hoeft geen comma achter comments='geen'
- er is geen waarde ingevuld voor het id
En word hier niet de waarde voor id aangegeven in regel 30..?
Ik loop alles nog even na maar bovenstaande snap ik niet :s
Veel te leren nog
dito voor al de rest
- Ook die overbodige variabelen zijn niet nodig.
- Het is $_POST['iets'] en niet $_POST[iets].
- Haal die stomme heredoc eens weg en scheid daar eens je html van je php dus:
Code (php)
1
2
3
2
3
<h1>The new record looks like this: </h1>
<p><strong>Factuurnummer:</strong><?php echo $factnum;?></p>
// enz
<p><strong>Factuurnummer:</strong><?php echo $factnum;?></p>
// enz
Arjan van Rossen op 12/02/2013 11:19:21:
Ik snap alleen niet waarom in regel 11 tm 13 date underlined is en de rest niet.
het is een onbedoelde feature van PHPhulp, date is ook een PHP-functie, en de code achter PHPhulp kent blijkbaar geen onderscheid tussen functies en normale tekst in een codeblok.
Quote:
Als je iets tussen brackets wilt vermelden, dan is het een string, en dus raad ik aan om single-quotes te gebruiken.
Eigenlijk is dit best overdreven omdat de waarde al in $_POST['amount'] staat, dus waarom zou je het nog eens in $amount willen plaatsen? Het komt neer op onnodige geheugen verspilling...
Het beste advies is om $_POST, $_GET, $_COOKIE, $_SESSION en andere dergeijke variabelen direct in je query te plaatsen. ZO heb je een makkelijk overzicht waarin je in één oogopslag kan zien waar de variabele vandaan komt.
Let op: Vergeet hierbij niet om deze door variabelen door mysql_real_escape_string() te halen. Want anders kan iedereen de query heel simpel manipuleren, met groot gevaar tot toegang tot je database tot gevolg.
Dit heet SQL-injection.....
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$sql="
UPDATE contacts SET
factnum='$factnum',
bedrijfsnaam='$bedrijfsnaam',
contactpersoon='$contactpersoon',
phone='$phone',
email='$email',
object='$object',
date='$date',
amount='$amount',
betalingstermijn='$betalingstermijn',
voldaan='$voldaan',
comments='$comments'
WHERE id='$id' ";
?>
$sql="
UPDATE contacts SET
factnum='$factnum',
bedrijfsnaam='$bedrijfsnaam',
contactpersoon='$contactpersoon',
phone='$phone',
email='$email',
object='$object',
date='$date',
amount='$amount',
betalingstermijn='$betalingstermijn',
voldaan='$voldaan',
comments='$comments'
WHERE id='$id' ";
?>
Je merkt dat er bij jou een komma staat na comments='$comments' . Die hoort daar niet.
En je bent een komma vergeten na amount.
Ik snap wel wat je bedoelt; een computer niet. Je mag geen enkele komma vergeten of te veel zetten.
Dit is vooral door proper te werken en goed uit te kijken.
---
INJECTION !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Bescherm je sql strings, door te escapen. Anders gaan hackers met je site aan de haal.
Als je het wil inwerken in je laatste code:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
...
$id = intval($_POST['id']); // als het en interger moet zijn
$factnum = mysql_real_escape_string($_POST['factnum']); // als het en string moet zijn
$bedrijfsnaam = mysql_real_escape_string($_POST['bedrijfsnaam']);
...
?>
...
$id = intval($_POST['id']); // als het en interger moet zijn
$factnum = mysql_real_escape_string($_POST['factnum']); // als het en string moet zijn
$bedrijfsnaam = mysql_real_escape_string($_POST['bedrijfsnaam']);
...
?>
-----
Ofwel dus rechtstreeks
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$sql="
UPDATE contacts SET
factnum='" . mysql_real_escape_string($_POST['factnum']) . "',
bedrijfsnaam='" . mysql_real_escape_string($_POST['bedrijfsnaam']) . "',
contactpersoon='" . mysql_real_escape_string($_POST['contactpersoon']) . "',
...
";
?>
$sql="
UPDATE contacts SET
factnum='" . mysql_real_escape_string($_POST['factnum']) . "',
bedrijfsnaam='" . mysql_real_escape_string($_POST['bedrijfsnaam']) . "',
contactpersoon='" . mysql_real_escape_string($_POST['contactpersoon']) . "',
...
";
?>
Gewijzigd op 12/02/2013 11:43:35 door Kris Peeters
Dank jullie allen! Ik ga het later vandaag allemaal rustig onder de loep nemen!