undefined index
ik ben paar weken geleden begonnen met php. ik ben dan ook bezig met het bestuderen van basis boek php5.
Nu ben ik een opdracht aant het maken maar krijg steeds deze foutmelding :
"Notice: Undefined index: id in C:\xampp\htdocs\bewerk_werknemer.php on line 24
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 '' at line 1"
In mijn database heet de tabel werknemer_geg waar ik de velden: klantnummer, voornaam, tussenvoegsel, achternaam heb aangemaak.
Ook wanneer ik "id" verander in "klantnummer" krijg ik deze foutmelding.
"Notice: Undefined index: klantnummer in C:\xampp\htdocs\bewerk_werknemer.php on line 24
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 '' at line 1"
Hoop dat jullie me kunen helpen kom niet verder.
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
47
48
49
50
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
$host = "localhost";
$username = "danny";
$dbnaam = "werknemers";
$foutmelding_1 = "FOUT : openen database mislukt!";
$foutmelding_2 = "FOUT : Kan juiste database niet vinden!";
$db=mysql_connect($host, $username) or die ($foutmelding_1); // of (mysql_error())
mysql_select_db($dbnaam, $db) or die($foutmelding_2); // of (mysql_error())
if (isset($_POST["bevestiging"])){
$query="DELETE FROM werknemer_geg WHERE klantnummer=" .$_POST["id"];
$result = mysql_query($query, $db) or die ("FOUT: " . mysql_error());
echo("De volgende opdracht is uitgevoerd: <b>$query</b><br>\n");
if ($result){
echo ("Record nummer " .$_POST["id"] . " is verwijderd<br>\n");
echo ("<a href=\"toonopscherm.php\">Terug naar het overzicht</a>");
}
}
else{
$query="SELECT * FROM werknemer_geg WHERE klantnummer=" .$_GET["id"];
$result = mysql_query($query, $db) or die ("FOUT: " . mysql_error());
?>
<html>
<head>
<title>Verwijderen: weet u het zeker?</title>
</head>
<body>
<h2>Let op: wilt u deze gegevens verwijderen?</h2>
<?php
while(list($klantnummer, $voornaam, $tussenvoegsel, $achternaam)= mysql_fetch_row($result)){
echo("Klantnummer = " .$klantnummer. "<br>\n");
echo("Voornaam = " .$voornaam. "<br>\n");
echo("Tussenvoegsel = " .$tussenvoegsel. "<br>\n");
echo("Achternaam = " .$achternaam. "<br>\n");
}?>
<form action="<?php echo($_SERVER["PHP_SELF"]);?>" method="post">
<input type="hidden" name="bevestiging" value="1">
<input type="hidden" name="id" value="<?php echo($_GET["id"]);?>">
<input type="Submit" value="Ja, verwijderen">
<input type="Button" value="Nee, terug" onclick="javascript:history.back();">
</form>
<?php
// else-blok correct afsluiten
}
?>
</body>
</html>
$host = "localhost";
$username = "danny";
$dbnaam = "werknemers";
$foutmelding_1 = "FOUT : openen database mislukt!";
$foutmelding_2 = "FOUT : Kan juiste database niet vinden!";
$db=mysql_connect($host, $username) or die ($foutmelding_1); // of (mysql_error())
mysql_select_db($dbnaam, $db) or die($foutmelding_2); // of (mysql_error())
if (isset($_POST["bevestiging"])){
$query="DELETE FROM werknemer_geg WHERE klantnummer=" .$_POST["id"];
$result = mysql_query($query, $db) or die ("FOUT: " . mysql_error());
echo("De volgende opdracht is uitgevoerd: <b>$query</b><br>\n");
if ($result){
echo ("Record nummer " .$_POST["id"] . " is verwijderd<br>\n");
echo ("<a href=\"toonopscherm.php\">Terug naar het overzicht</a>");
}
}
else{
$query="SELECT * FROM werknemer_geg WHERE klantnummer=" .$_GET["id"];
$result = mysql_query($query, $db) or die ("FOUT: " . mysql_error());
?>
<html>
<head>
<title>Verwijderen: weet u het zeker?</title>
</head>
<body>
<h2>Let op: wilt u deze gegevens verwijderen?</h2>
<?php
while(list($klantnummer, $voornaam, $tussenvoegsel, $achternaam)= mysql_fetch_row($result)){
echo("Klantnummer = " .$klantnummer. "<br>\n");
echo("Voornaam = " .$voornaam. "<br>\n");
echo("Tussenvoegsel = " .$tussenvoegsel. "<br>\n");
echo("Achternaam = " .$achternaam. "<br>\n");
}?>
<form action="<?php echo($_SERVER["PHP_SELF"]);?>" method="post">
<input type="hidden" name="bevestiging" value="1">
<input type="hidden" name="id" value="<?php echo($_GET["id"]);?>">
<input type="Submit" value="Ja, verwijderen">
<input type="Button" value="Nee, terug" onclick="javascript:history.back();">
</form>
<?php
// else-blok correct afsluiten
}
?>
</body>
</html>
Gewijzigd op 14/11/2011 22:51:46 door Danny van Benthem
Gewijzigd op 14/11/2011 22:43:32 door - Ariën -
Sorry wist ik niet. Gewijzigd:)
Verder zitten er wat haken en ogen aan je code
- Gebruik het liefst een echo 'bla';-structuur.
- Ik mis foutafhandeling om je queries heen. or die() is niet de juiste manier.
- SQL injection is mogelijk je bent hackbaar, omdat je geen mysql_real_escape_string() gebruik om je POST en GET variabelen in je query.
Hoi Aar wat bedoel je precies dan met die foutafhandeling?
Code (php)
1
2
3
2
3
<?php
$query="DELETE FROM werknemer_geg WHERE klantnummer= '".mysql_real_escape_string($_POST["id"])"';
?>
$query="DELETE FROM werknemer_geg WHERE klantnummer= '".mysql_real_escape_string($_POST["id"])"';
?>
Gewijzigd op 15/11/2011 09:15:24 door Dirk Renes
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$query="DELETE FROM werknemer_geg
WHERE
klantnummer = '".mysql_real_escape_string($_POST['id'])."'";
[/code]
$query="DELETE FROM werknemer_geg
WHERE
klantnummer = '".mysql_real_escape_string($_POST['id'])."'";
[/code]
Gewijzigd op 15/11/2011 09:12:51 door Bart V B
Gewijzigd op 15/11/2011 09:13:42 door Tim Fendt
Bart V B op 15/11/2011 09:12:01:
@Dirk: je hebt een klein tik foutje gemaakt. :)
o ik zie het:-) zal het even aanpassen
Gewijzigd op 15/11/2011 09:15:54 door Dirk Renes
Je moet dus kijken wat mysql_query terug stuurt, een geldige resource of een false.
Lees ook eens eens:
http://www.phphulp.nl/php/tutorial/data-verwerking/foutafhandeling-query-sql/735/