id uit de database halen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Elian degroot

elian degroot

12/04/2015 17:38:40
Quote Anchor link
Beste,

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)
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
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 ;


daarin worden gegevens vanuit een form in gezet.
even verkkort de code:
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
$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());


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
 
PHP hulp

PHP hulp

29/03/2024 14:36:39
 
Daan Slagter

Daan Slagter

12/04/2015 17:42:08
Quote Anchor link
http://www.w3schools.com/php/php_mysql_insert_lastid.asp

Hier staat hoe je van de laatste ingevoerde regel het ID kan ophalen.
 
Eddy E

Eddy E

12/04/2015 17:49:51
Quote Anchor link
Of een SELECT-query waarin je kijk naar $ns, $ns $sns, $gps, $ls, $ts, $nts (hadden we die niet al?), $mas, $ms, $os, $oas, $acs en $ocs...

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...
 
Elian degroot

elian degroot

13/04/2015 08:56:06
Quote Anchor link
Beste,

Ik heb het opgelost als volgd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$sql = "SELECT MAX( id )FROM table";


Met dank
Gewijzigd op 13/04/2015 08:58:13 door elian degroot
 
- Ariën  -
Beheerder

- Ariën -

13/04/2015 10:05:15
Quote Anchor link
Die afkortingen in de velden zijn zeker beurs-deelnemers?
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?
 
Ivo P

Ivo P

13/04/2015 13:09:24
Quote Anchor link
$sql = "SELECT MAX( id )FROM table";

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.


wat nu als die combinatie er al 10x instaat? Dan krijg je dus 10 id's retour?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.