record kopieren naar historie tabel voordat hij gedelete wordt
Ik heb voor het werk een klein personeelsbestand gemaakt. In deze database kan de administratie personen aanmaken, gegevens wijzigen en personen verwijderen.
Nu wil ik, wanneer ik een persoon delete, dat er eerst een copy van dat record gemaakt wordt en geplaatst wordt in de tabel adressen_h.
Voor het deleten van een record gebruik ik de volgende sql:
$sql_del= "DELETE FROM adressen WHERE Pers_nr=$idweg";
Weet iemand hoe ik het moet oplossen om de record, met $idweg, te kopiëren naar de tabel adressen_h
Alvast bedankt
Wim
In de rest van je systeem kun je dan gewoon werken met de personen WHERE gearchiveerd = FALSE
$sql_sel = "SELECT FROM adressen WHERE Pers_nr=$idweg";
en dan een INSERT qeury
maar daar heb ik teweinig gegevens voor om die voor je te maken.
PHP Newbie schreef op 21.09.2008 23:59:
Veel simpeler,..
:) zo das echt slim!
rvw schreef op 22.09.2008 00:03:
:) zo das echt slim!
PHP Newbie schreef op 21.09.2008 23:59:
Veel simpeler,..
:) zo das echt slim!
Bedankt voor jullie reactie, maar ik wil het in een aparte tabel opslaan. Mijn insert voor het invoeren van personeel is (hierbij heb ik meteen de tabelnaam veranderd in de historie tabel:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$sql_ins_h= "INSERT INTO adressen_h
(Afbeelding, Voornaam, Tussenvoegsel, Achternaam, Functie, Pers_nr, Straat, Huisnummer, Toevoeging, Postcode, Plaats, Adresintra,Telefoonnr, Faxnummer, Mobielnr, Mobielintra, Geb_datum, BSN, In_dienst_per, Kenteken_auto, Email, Klant, Project, Locatie, Verwacht_einde)
VALUES
('$Afbeelding', '$Voornaam', '$Tussenvoegsel', '$Achternaam', '$Functie', '$Persnr', '$Straat', '$Huisnummer', '$Toevoeging', '$Postcode', '$Plaats', '$Adresintra', '$Telefoonnr', '$Faxnummer', '$Mobielnr', '$Mobielintra', '$Gebdatum', '$BSN', '$In_dienst_per', '$Kenteken_auto', '$Email', '$Klant', '$Project', '$Locatie', '$Verwacht_einde')
";
?>
$sql_ins_h= "INSERT INTO adressen_h
(Afbeelding, Voornaam, Tussenvoegsel, Achternaam, Functie, Pers_nr, Straat, Huisnummer, Toevoeging, Postcode, Plaats, Adresintra,Telefoonnr, Faxnummer, Mobielnr, Mobielintra, Geb_datum, BSN, In_dienst_per, Kenteken_auto, Email, Klant, Project, Locatie, Verwacht_einde)
VALUES
('$Afbeelding', '$Voornaam', '$Tussenvoegsel', '$Achternaam', '$Functie', '$Persnr', '$Straat', '$Huisnummer', '$Toevoeging', '$Postcode', '$Plaats', '$Adresintra', '$Telefoonnr', '$Faxnummer', '$Mobielnr', '$Mobielintra', '$Gebdatum', '$BSN', '$In_dienst_per', '$Kenteken_auto', '$Email', '$Klant', '$Project', '$Locatie', '$Verwacht_einde')
";
?>
Maar moet ik dan de gegevens nog ergens eerst in het geheugen opslaan? Hiermee schrijft hij namelijk alleen een 0 weg voor Pers_nr (mijn sleutel in de tabel)
Ik weet echt niet hoe dat werkt.
tnx voor de hulp en het meedenken
Wim
Mocht je toch een history table willen gebruiken, ga dan met een TRIGGER werken die automatisch bij het verwijderen van een record eerst even een kopietje in de history table wegschrijft. Dan wordt het onmogelijk om iets te verwijderen zonder dat er een backup in je history table komt te staan. Met losse INSERT-queries heb je de garantie dat het fout gaat...
Gewijzigd op 01/01/1970 01:00:00 door --
.. plus als je een status of gearchiveerd veld maakt heb je ook nog je data mocht het record verkeerd gedelete zijn, of de persoon weer terug komen.
Ik ben overtuigd :-).
Ik heb een aanpassing gemaakt dat hij een waarde weg schrijft wanneer ik op delete klik. Zo ben ik mijn gegevens nooit kwijt.
Hartelijk dank voor dit inzicht.
Wim