Versio

undefined index

Overzicht Reageren

Danny van Benthem

Danny van Benthem

14/11/2011 22:32:44
Quote Anchor link
Beste leden,

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)
PHP script in nieuw venster Selecteer het PHP script
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
$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
 
PHP hulp

PHP hulp

25/05/2012 16:52:13
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
- Aar -

- Aar -

14/11/2011 22:42:51
Quote Anchor link
Zet je script a.u.b. tussen [code]-blokken. Dit is niet goed leesbaar.
Gewijzigd op 14/11/2011 22:43:32 door - Aar -
 
Danny van Benthem

Danny van Benthem

14/11/2011 22:52:58
Quote Anchor link
Sorry wist ik niet. Gewijzigd:)
 
- Aar -

- Aar -

14/11/2011 23:48:43
Quote Anchor link
Bedoel je die GET in de klantnummer-query? Blijkbaar is die URL-parameter niet bekend in de URL.

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.
 
Danny van Benthem

Danny van Benthem

15/11/2011 08:33:20
Quote Anchor link
Hoi Aar wat bedoel je precies dan met die foutafhandeling?
 
Dirk Renes

Dirk Renes

15/11/2011 09:05:42
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
ini_set('display_errors', 'On'); // aan of uit
error_reporting(E_ALL);
?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$query
="DELETE FROM werknemer_geg WHERE klantnummer= '".mysql_real_escape_string($_POST["id"])"';
?>
Gewijzigd op 15/11/2011 09:15:24 door Dirk Renes
 
Bart V B

Bart V B

15/11/2011 09:12:01
Quote Anchor link
@Dirk: je hebt een klein tik foutje gemaakt. :)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$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
 
Tim Fendt

Tim Fendt

15/11/2011 09:13:20
Quote Anchor link
Haha bart was eerder ;)
Gewijzigd op 15/11/2011 09:13:42 door Tim Fendt
 
Dirk Renes

Dirk Renes

15/11/2011 09:15:09
Quote Anchor link
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
 
- Aar -

- Aar -

15/11/2011 11:02:12
Quote Anchor link
En ook wordt er met 'foutafhandeling' bedoeld, dat je alle mogelijke fouten kan onderscheppen, en met name in queries, omdat die soms niet goed uitgevoerd kunnen worden bij problemen met de database of fouten in de structuur.
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/
 



Overzicht Reageren

Get Adobe Flash player