record kopieren naar historie tabel voordat hij gedelete wordt

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Wim Selles

Wim Selles

21/09/2008 23:02:00
Quote Anchor link
Hallo daar.

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

PHP hulp

24/11/2024 23:44:07
 
PHP Newbie

PHP Newbie

21/09/2008 23:59:00
Quote Anchor link
Veel simpeler, maak gewoon een extra kolom aan "geachriveerd". Zodra je een persoon verwijderd voer je dus geen DELETE uit, maar een UPDATE en zet je gearchiveerd op TRUE.

In de rest van je systeem kun je dan gewoon werken met de personen WHERE gearchiveerd = FALSE
 
RvW Of toch niet

RvW Of toch niet

22/09/2008 00:01:00
Quote Anchor link
neem aan dat je mySQL gebruikt in mySQL heb je geloof ik 2 opdrachten nodig om interen gevens te copieren. ( in portgeSQL ken het volgens mijn in 1keer maar nvm :))

$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.
 
RvW Of toch niet

RvW Of toch niet

22/09/2008 00:03:00
Quote Anchor link
PHP Newbie schreef op 21.09.2008 23:59:
Veel simpeler,..


:) zo das echt slim!
 
Wim Selles

Wim Selles

22/09/2008 07:43:00
Quote Anchor link
rvw schreef op 22.09.2008 00:03:
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)
PHP script in nieuw venster Selecteer het PHP script
1
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')
                    "
;     
?>


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
 
Frank -

Frank -

22/09/2008 07:45:00
Quote Anchor link
En wanneer je gewoon een kolom "status" gebruikt, dan kun je nog veel meer statussen gebruiken en niet alleen "gearchiveerd".

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

--

22/09/2008 07:46:00
Quote Anchor link
Toch raad ik je aan om gewoon met de oplossing van PHP Newbie te werken. Wat jij wilt gaan doen is informatie kopieren terwijl dat imho nutteloos is.
Gewijzigd op 01/01/1970 01:00:00 door --
 
Gerben Jacobs

Gerben Jacobs

22/09/2008 10:06:00
Quote Anchor link
.. 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.
 
Wim Selles

Wim Selles

22/09/2008 10:30:00
Quote Anchor link
Ok,

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
 



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.