[PHP/MYSQL] id ingevoegde record achterhalen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik ben dus bezig met een project voor school, dit heeft te maken met reservering van vakantiewoningen. Zodra een klant iets wil boeken kan hij zijn gegevens invullen. De ingevulde gegevens sla ik op in de tabel "persoon" maar om ook de boeking in de gaten te houden wil het id van die persoon (primary key) in een andere tabel opslaan.

Mijn vraag: met welke functie kun je het id te pakken krijgen van de persoon die je net hebt ingevoegd. Dit is anders als de laatste toegevoegde persoon, dit doe je met de functie: $id_persoon=mysql_insert_id();

BVD, coaster

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Nope, het is de laatst toegevoegde persoon binnen deze scriptuitvoer. De functie die je gebruikt is dus correct.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
mmh...en bugt at niet met iets anders? Stel iemand anders voegt op het admin gedeelte een bepaalde gebruiker dat ie dan met dat id in de war kan raken?

Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Een mysql-timesamp neerzetten in de tabel voor de personen. Elke keer als je iets wijzigt in de rij van de persoon dan werk je de timesamp bij. En dan kun je het laatst gewijzigde timesamp selecteren.

Het kan zijn dat ik je vraag niet helemaal begrijp. Het is een beetje vaag.

Maar als je in dezelfde sessie als dat je de persoon toevoegt ook wil weten wie je als laatste hebt toegevoegt zou je dit natuurlijk ook kunnen doorgeven met sessions.

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Nope, daar kan ik niet meer over zeggen, dat is gewoon zo. Het neemt namelijk de id van het laatste insert statement dat je hebt gedaan in deze scriptuitvoer.
Mijn vraag: met welke functie kun je het id te pakken krijgen van de persoon die je net hebt ingevoegd.
Daar heb ik echt geen timestamps e.d. voor nodig, natuurlijk wel als je de laatste persoon in de db wilt hebben. Maar dat is niet je vraag.

[ Voor 46% gewijzigd door djluc op 06-10-2003 21:00 ]


Acties:
  • 0 Henk 'm!

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 16-08 17:16
Verwijderd schreef op 06 October 2003 @ 20:56:
mmh...en bugt at niet met iets anders? Stel iemand anders voegt op het admin gedeelte een bepaalde gebruiker dat ie dan met dat id in de war kan raken?
Wat je beschrijft zal niet gebeuren. mysql_insert_id werkt per connectie en 'iemand anders' zal een andere connectie hebben met de database.

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
mjah mayby leg ik wel krom uit...maar het ahd er mee te maken dat je de persoon krijgt die je net hebt ingevoegd. Want voor hetzelfde geld voor iemand ook insert statemant uit op het moment dat jij je functie krijgt...en dan pak je het verkeerde id...

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
is toch multi-user...d8 ik wel tenminste, want ik heb 3 soorten users voor die site (admin, eigenaar, huurder)...en alle drie kunnen ze een insert statement tot stand brengen

Acties:
  • 0 Henk 'm!

Verwijderd

Nee, je pakt op die manier de id van de rij die jezelf hebt ingevoerd, niet van diegene die evt. op hetzelfde tijdstip een insert doet.

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Nee, dat gebeurt echt niet, daar is die functie precies voor gemaakt! Geloof ons nou maar gewoon en ga nuttiger programmeerwerk doen, zo'n functie is er niet voor niets.

Je uitleg is duidelijk genoeg trouwens.

edit:
mooie timing j-rome!

[ Voor 10% gewijzigd door djluc op 06-10-2003 21:06 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
jah owke...maakt mij niet uit hoe die werkt, maar de leraren op school wel :S

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Hoe bedoel je dat, het werkt toch gewoon, en de verklaring is ook al gegeven:
Wat je beschrijft zal niet gebeuren. mysql_insert_id werkt per connectie en 'iemand anders' zal een andere connectie hebben met de database.
...en zal dus niet de resultaten die jij in jouw connectie krijgt op beinvloeden. Wat dit betreft natuurlijk.

Acties:
  • 0 Henk 'm!

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 16-08 17:16
Is pas al een topic over geweest.

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
owke...ik ben tevreden...dank jullie wel allemaal!!

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Wel de variablen buiten de quotes halen he bigtree, jij als king of scripting ;)

Ben je overtuigd TS of vind je het nog niet genoeg, deze chatsessie? :)

Acties:
  • 0 Henk 'm!

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 16-08 17:16
djluc schreef op 06 October 2003 @ 21:14:
[...]

Wel de variablen buiten de quotes halen he bigtree, jij als king of scripting ;)
Wat dacht je van deze:
$sqlResult = mysql_query("SELECT MAX(id) FROM tabel");
$myrow = mysql_fetch_assoc($sqlResult);
$id = $myrow['id'];
'id' is dan geeneens een element van $myrow :X ;)

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Tsja, het topic waar die king reactie in stond was dan ook gesloten hè ;)
Het ziet er in ieders geval niet echt slim uit, maarja dat zijn maar tikfoutjes van een professional :)
Pagina: 1