[php/mysql] Sessie id als tijdelijk id?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een cms-systeem waarbij de beheerder studenten uit de database toe kan voegen aan een opleiding.

Daarbij wordt met behulp van een koppel tabel het id van de student en het id van de opleiding aan elkaar gekoppeld. Niks bijzonders, maar voorwaarde is wel dat het id van de opleiding al bekend moet zijn voordat je er studenten aan kunt koppelen en daar zit mijn probleem. In mijn systeem moet je eerst een opleiding aanmaken, de boel opslaan en dan kun je er pas studenten aanhangen.

Wat ik wil is het volgende: een nieuwe opleiding aanmaken en daar gelijk studenten aan toevoegen zonder eerst de opleiding "op te slaan". (Studenten worden in een popup-scherm aan de opleiding gekoppeld en daarom ook eerder opgeslagen)

Nu heb ik bedacht dat het waarschijnlijk het beste is om het sessie_id te gebruiken als tijdelijk id en bij het opslaan van de opleiding het sessie_id te vervangen door het opleiding_id.

Ik verwacht wel dat dit gaat werken, maar mijn gevoel zegt me dat het niet helemaal is zoals het "hoort", want als je bijvoorbeeld op annuleren klikt en de opleiding niet toevoegt is de database vervuild.

Wat ik wil weten is of het gebruiken van een sessie_id als een soort temp_id wel vaker gedaan wordt of dat er een manier is die meer "gangbaar" is.

Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
Is het niet mogelijk om je opleiding op te slaan. Hierna even de ID opvragen en de studenten opslaan. Dat heeft verder niks te maken hoe je het presenteer op je scherm.

Acties:
  • 0 Henk 'm!

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
in een relationele database zou het al onmogelijk moeten zijn om childs toe te voegen terwijl de parent er nog niet eens is...

wat ik als ik jou was gewoon zou doen is de opleiding opslaan op het moment dat de eerste student wordt gekoppeld

edit:
en vervolgens kun je zoals nork aangeeft op basis van de opleidingID aan de gang, al verwacht ik dat je dat zelf ook al wel had bedacht :+

[ Voor 24% gewijzigd door faabman op 05-11-2003 12:34 ]

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Verwijderd schreef op 05 november 2003 @ 12:29:
Wat ik wil is het volgende: een nieuwe opleiding aanmaken en daar gelijk studenten aan toevoegen zonder eerst de opleiding "op te slaan". (Studenten worden in een popup-scherm aan de opleiding gekoppeld en daarom ook eerder opgeslagen)

Nu heb ik bedacht dat het waarschijnlijk het beste is om het sessie_id te gebruiken als tijdelijk id en bij het opslaan van de opleiding het sessie_id te vervangen door het opleiding_id.
waarom doe je niet gewoon op het moment dat je het geheel opslaat eerst een INSERT voor de opleiding en dan met de mysql_insert_id() een UPDATE voor alle studenten die je er aan wil koppelen?