Toon posts:

[MYSQL] Inputbox history

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een form daarin staan inputboxjes(deze bevatten waardes die uit de DB komt, als ik deze verander moet de pagina weten welke veranderd is en welke niet...
hoe los ik dit het makkelijkst op....

kan je bijv. als je een value van een inputbox verander, de oude waarde opvragen die uit de DB komt....

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

kan je bijv. als je een value van een inputbox verander, de oude waarde opvragen die uit de DB komt....
Ja. Je kan ook gewoon alles updaten; de oude waarde overschrijven met dezelfde waarde levert ook geen probleem op.

Evt. kan je het ook bij houden in een Form en alle waarden dubbel meesturen. Als je het echt heel netjes wel oplossen kan je eens kijken naar Unit Of Work-pattern van Fowler.

[ Voor 29% gewijzigd door gorgi_19 op 02-10-2003 09:06 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
gorgi_19 schreef op 02 oktober 2003 @ 08:48:
[...]

Evt. kan je het ook bij houden in een Form. Als je het echt heel netjes wel oplossen kan je eens kijken naar Unit Of Work-pattern van Fowler.
Waar zie jij hier een unit-of-work oplossing in?
Een Unit of Work kan je toch eerder vergelijken met een 'transactie', waarin je meerdere records gaat gaan updaten, en ze enkel 'commit' als alles lukt, en een rollback doet als je niet alles kan uitvoeren?
Of mis ik nu iets?

* whoami moet z'n Fowler boek ook nog eens verder lezen.

https://fgheysels.github.io/


Verwijderd

Topicstarter
gorgi_19 schreef op 02 October 2003 @ 08:48:
[...]

Ja. Je kan ook gewoon alles updaten; de oude waarde overschrijven met dezelfde waarde levert ook geen probleem op.

Evt. kan je het ook bij houden in een Form. Als je het echt heel netjes wel oplossen kan je eens kijken naar Unit Of Work-pattern van Fowler.
Ik wil juist niet de oude waardes overschrijven dit omdat ik alleen de gewijzigde velden updaten omdat de DB heel groot is dus dat scheeld een hoop.
En er moet gelogged worden wat aangepast is en wanneer etc. dus ik moet dat checken.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

whoami schreef op 02 October 2003 @ 09:01:
[...]


Waar zie jij hier een unit-of-work oplossing in?
Een Unit of Work kan je toch eerder vergelijken met een 'transactie', waarin je meerdere records gaat gaan updaten, en ze enkel 'commit' als alles lukt, en een rollback doet als je niet alles kan uitvoeren?
Of mis ik nu iets?

* whoami moet z'n Fowler boek ook nog eens verder lezen.
Het wordt ook een hele kleine variant ervan, aangezien je niet echt met objecten werkt. Het principe ging me er meer om dat je bijhoudt welke changed en welke unchanged zijn. Vervolgens schrijf je de changed versie weg. Je beschouwd dan iedere 'checkbox als een object'

't zou heel goed kunnen dat ik onzin praat; ik heb me nog niet zo verdiept in dat pattern; boek staat nog steeds op m'n 'afleeslijstje' :X

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 02 oktober 2003 @ 09:01:
[...]


Ik wil juist niet de oude waardes overschrijven dit omdat ik alleen de gewijzigde velden updaten omdat de DB heel groot is dus dat scheeld een hoop.
En er moet gelogged worden wat aangepast is en wanneer etc. dus ik moet dat checken.
gorgi_19 schreef op 02 oktober 2003 @ 08:48:
Evt. kan je het ook bij houden in een Form; de waarden dus dubbel meesturen. Als je het echt heel netjes wel oplossen kan je eens kijken naar Unit Of Work-pattern van Fowler.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Verwijderd schreef op 02 October 2003 @ 09:01:
[...]


Ik wil juist niet de oude waardes overschrijven dit omdat ik alleen de gewijzigde velden updaten omdat de DB heel groot is dus dat scheeld een hoop.
En er moet gelogged worden wat aangepast is en wanneer etc. dus ik moet dat checken.
Wat heeft dat er nu mee te maken? Je database gaat er niet door groeien hoor.
Het enige wat groter kan worden is je transaction log.

Als je wil loggen wat er aangepast is, kan je dat best in een trigger doen. Dat is het veiligste en het beste. In een UPDATE trigger kan je de verschillen bekijken tussen de 'oude' rij, en de 'nieuwe' rij.
Echter, één probleem: MySQL ondersteunt afaik geen triggers.

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
gorgi_19 schreef op 02 October 2003 @ 09:05:
[...]

Het wordt ook een hele kleine variant ervan, aangezien je niet echt met objecten werkt. Het principe ging me er meer om dat je bijhoudt welke changed en welke unchanged zijn. Vervolgens schrijf je de changed versie weg. Je beschouwd dan iedere 'checkbox als een object'

't zou heel goed kunnen dat ik onzin praat; ik heb me nog niet zo verdiept in dat pattern; boek staat nog steeds op m'n 'afleeslijstje' :X
Eigenlijk kan je in .NET een DataSet als een Unit of Work beschouwen.

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

whoami schreef op 02 October 2003 @ 09:10:
Eigenlijk kan je in .NET een DataSet als een Unit of Work beschouwen.
Hmmm.. als ik zo teruglees lijkt het idd daar wel erg op.. :P

* gorgi_19 zoekt even op.

Fowler beschouwt een disconnected dataset zelf ook als een UoW, weliswaar met een kleine wijziging ten opzichte van wat hij zegt. Om te quoten, bladzijde 189:
In .NET, the Unit of Work is done by a disconnected data set

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
De topicstarter wil hier echter een wijziging op 1 record bijhouden.
Een uow werkt op een set van records, en gewijzigde records.

https://fgheysels.github.io/


  • Banpei
  • Registratie: Juli 2001
  • Laatst online: 21-08 13:52
Zowiezo doet MySQL eerst een check of de update nutteloos is (of de data gewijzigd is), dit is bijvoorbeeld af te leiden aan als je timestamps aan je tabellen toevoegt. Als je een update-query doet met exact dezelfde data zal de timestamp dan niet wijzigen.

  • TRON
  • Registratie: September 2001
  • Laatst online: 16-08 07:26
Ik heb ook even voor je gezocht, maar zover ik weet is hier (nog) geen functie voor. Je moet het waarschijnlijk omslachtig gaan doen, door eerst de gegevens uit de database te halen, te vergelijken met de gegevens van $_POST en dan je ding doen.

Leren door te strijden? Dat doe je op CTFSpel.nl. Vraag een gratis proefpakket aan t.w.v. EUR 50 (excl. BTW)


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

whoami schreef op 02 October 2003 @ 09:38:
De topicstarter wil hier echter een wijziging op 1 record bijhouden.
Een uow werkt op een set van records, en gewijzigde records.
Voor zover ik zie zijn er toch meerdere inputboxen, en dus meerdere records?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
gorgi_19 schreef op 02 October 2003 @ 10:09:
[...]

Voor zover ik zie zijn er toch meerdere inputboxen, en dus meerdere records?
Een inputbox gaat toch over 1 veld, en al die velden kunnen toch tot hetzelfde record behoren?

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

whoami schreef op 02 oktober 2003 @ 10:12:
[...]


Een inputbox gaat toch over 1 veld, en al die velden kunnen toch tot hetzelfde record behoren?
* gorgi_19 was er stiekem van uit gegaan dat het over meerdere records ging.... :P

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • pgussow
  • Registratie: Maart 2003
  • Laatst online: 18-08-2025
Zoals al aangegeven maakt de grootte van de DB geen verschil. Als jij een record update, dan zal het te updaten record eigenlijk altijd via de PK gezocht worden. Tenminste, daar kan ik in jouw geval wel vanuit gaan, omdat je het hebt over het updaten van EEN record..

Als je dan toch perse changes wilt bijhouden moet je nooit via de client doen. Want de client is in weze nooit betrouwbaar. En al helemaal niet via Internet. Wat je ook gewoon kan doen is in je processing het originele record opnieuw lezen. Aangezien je dit via de PK van de tabel kan doen, zal dat niet veel extra tijd kosten. En dan kun je gewoon serverside de boel checken...

Verwijderd

Topicstarter
ok, ik ga wel even een functie schrijven die de $_POST[vars] vergelijkt met de waardes uit de DB, dus niet met hiddenfields want deze routine ga ik vaker gebruiken vandaar de functie.

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 18:29
Je zult een soort van parentid mee moeten geven en dan steeds een nieuw record invoeren. Dan heb je een hele mooie geschiedenis. Dat kun je heel eenvoudig serverside doen.
Pagina: 1