id uit de database halen
Ik heb een probleem waarvan ik de oplossing niet zelf vind.
Het gaat over het volgende:
ik heb een data base aangemaakt die er als volgd uitziet
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
CREATE TABLE IF NOT EXISTS `beurs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`fns` varchar(40) NOT NULL,
`ns` varchar(40) NOT NULL,
`sns` varchar(50) NOT NULL,
`gps` varchar(50) NOT NULL,
`ls` varchar(4) NOT NULL,
`ts` varchar(20) NOT NULL,
`nts` varchar(20) NOT NULL,
`mas` varchar(50) NOT NULL,
`ms` varchar(6) NOT NULL,
`sbs` varchar(6) NOT NULL,
`stb` varchar(5) NOT NULL,
`oas` varchar(400) NOT NULL,
`os` varchar(400) NOT NULL,
`acs` varchar(3) NOT NULL,
`ocs` varchar(500) NOT NULL,
`bs` varchar(6) NOT NULL,
`ds` varchar(10) NOT NULL,
`sbw` varchar(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=20160 ;
`id` int(11) NOT NULL AUTO_INCREMENT,
`fns` varchar(40) NOT NULL,
`ns` varchar(40) NOT NULL,
`sns` varchar(50) NOT NULL,
`gps` varchar(50) NOT NULL,
`ls` varchar(4) NOT NULL,
`ts` varchar(20) NOT NULL,
`nts` varchar(20) NOT NULL,
`mas` varchar(50) NOT NULL,
`ms` varchar(6) NOT NULL,
`sbs` varchar(6) NOT NULL,
`stb` varchar(5) NOT NULL,
`oas` varchar(400) NOT NULL,
`os` varchar(400) NOT NULL,
`acs` varchar(3) NOT NULL,
`ocs` varchar(500) NOT NULL,
`bs` varchar(6) NOT NULL,
`ds` varchar(10) NOT NULL,
`sbw` varchar(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=20160 ;
daarin worden gegevens vanuit een form in gezet.
even verkkort de code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$fns = addslashes($_POST['1']);
$ns = addslashes($_POST['2']);
$sns = addslashes($_POST['3']);
$gps = addslashes($_POST['4']);
$ls = addslashes($_POST['5']);
$ts = addslashes($_POST['6']);
$nts = addslashes($_POST['7']);
$mas = addslashes($_POST['8']);
$ms = addslashes($_POST['9']);
$os = addslashes($_POST['10']);
$oas = addslashes($_POST['11']);
$acs = addslashes($_POST['12']);
$ocs = addslashes($_POST['13']);
mysql_query("INSERT INTO beurs (fns, ns, sns, gps, ls, ts, nts, mas, ms, os, oas, acs, ds, sbw, ocs) VALUES ('".$fns."', '".$ns."', '".$sns."',
'".$gps."', '".$ls."', '".$ts."', '".$nts."',
'".$mas."', '".$ms."', '".$os."', '".$oas."', '".$acs."', NOW(), '".$sbw."', '".$ocs."')")
or die (mysql_error());
$ns = addslashes($_POST['2']);
$sns = addslashes($_POST['3']);
$gps = addslashes($_POST['4']);
$ls = addslashes($_POST['5']);
$ts = addslashes($_POST['6']);
$nts = addslashes($_POST['7']);
$mas = addslashes($_POST['8']);
$ms = addslashes($_POST['9']);
$os = addslashes($_POST['10']);
$oas = addslashes($_POST['11']);
$acs = addslashes($_POST['12']);
$ocs = addslashes($_POST['13']);
mysql_query("INSERT INTO beurs (fns, ns, sns, gps, ls, ts, nts, mas, ms, os, oas, acs, ds, sbw, ocs) VALUES ('".$fns."', '".$ns."', '".$sns."',
'".$gps."', '".$ls."', '".$ts."', '".$nts."',
'".$mas."', '".$ms."', '".$os."', '".$oas."', '".$acs."', NOW(), '".$sbw."', '".$ocs."')")
or die (mysql_error());
Tot daar is er geen probleem.
Nu wil ik naar de persoon een mail sturen waarin zijn id is vermeld,
maar het lukt me gewoonweg niet om die te voorschijn te halen voor deze bewerking.
kan iemand me helpen aub?
Met dank
Gewijzigd op 12/04/2015 17:40:26 door Elian degroot
http://www.w3schools.com/php/php_mysql_insert_lastid.asp
Hier staat hoe je van de laatste ingevoerde regel het ID kan ophalen.
Hier staat hoe je van de laatste ingevoerde regel het ID kan ophalen.
Dus je update iets met gegevens: dan kijk je welk ID exact die gegevens hebben gekregen.
Krijg je geen resultaat terug, dan is je data dus verkeerd opgeslagen.... want addslashes is geen beveiliging en eigenlijk niet eens meer nodig.
Daarnaast... een formulierveld mag niet beginnen met een cijfer... dus $_POST['1'] mag eigenlijk niet bestaan...
In theorie zou je nooit je velden moeten uitbreiden waarbij je je applicatie steeds moet aanpassen.
Als je dit netjes zou willen doen kom je uit op een extra tabel waarin de afkortingen staan als record, in plaats als veld, waarna je deze koppelt aan de juiste ID's. Want wat nou als ID-nummer 4 bijvoorbeeld eens geen 'acs' kan bevatten?
Met een beetje pech, is er intussen nog een geïnsert en heb je de verkeerde te pakken.
en
Quote:
Dus je update iets met gegevens: dan kijk je welk ID exact die gegevens hebben gekregen.
Krijg je geen resultaat terug, dan is je data dus verkeerd opgeslagen.... want addslashes is geen beveiliging en eigenlijk niet eens meer nodig.
Krijg je geen resultaat terug, dan is je data dus verkeerd opgeslagen.... want addslashes is geen beveiliging en eigenlijk niet eens meer nodig.
wat nu als die combinatie er al 10x instaat? Dan krijg je dus 10 id's retour?