Gå til innhold

Er form'en forandret?


Anbefalte innlegg

<form>
   NAVN: <INPUT type="text" name="navn" value="Trond">
   osv... 
  </form>

 

Hva er det enkletse måte å sjekke om verdiene er blir forandret på? Å hente ut data fra mysql tabelen og sammen ligne? skrive inn alle feltene på nytt i tabellen med en UPDATE selv om de ikke er forandret? legge med et input felt som hidden der verdien med den lagrede verdien å sjekke den mot det som den er nå?

Lenke til kommentar
Videoannonse
Annonse

Beste du gjør er nok og hente verdiene ut av databasen og sammenligne, for så å bygge opp sql spørringen din derifra.

 

Har selv opplevd at man får en mysql error hvis du prøver og oppdatere en rad med eksakt samme data som er der fra før.

Lenke til kommentar
Beste du gjør er nok og hente verdiene ut av databasen og sammenligne, for så å bygge opp sql spørringen din derifra.

 

Har selv opplevd at man får en mysql error hvis du prøver og oppdatere en rad med eksakt samme data som er der fra før.

5763371[/snapback]

 

ok, dette er det enkleste? som blir brukt minst prossesor tid på også?

Lenke til kommentar
Skjønner ikke helt jeg heller, men hvis det er riktig det goggen90 gjør så må du huske å quote Trond. "Trond"

5765610[/snapback]

 

JA, jeg liker best å være quotet :)

 

Neida, dere forsto ikke helt rett... tenk dere nå, dere henter ut informasjon fra en mysql tabel, 20 linjer. plassere dem i et skjema og sender det til brukeren.

 

Brukeren forandrer på noen felt, eller ikke, hvem vet. også trykker han på "submit" knappen og du får tilbake en haug med variabler med ting som skal inn i mysql tabelen igjen.. men er alle feltene oppdatert ? isåfall hvordan vil du sjekke om de er oppdatert ? hente ut informasjon fra databasen og sammenligne? eller vil du sende med en "hidden" med informasjom om hva som var i skjemat før det ble forandret.. slik

<INPUT type="text" name="navn" value="Trond">

<INPUT type="hidden" name="hidden_navn" value="Trond">

 

for så og sjkke det når de kommer tilbake:

foreach ( $_POST as $felt => $streng){
  if(strpos( $felt, "hidden") === false)
     if($_POST[$felt] != $_POST["hidden_".$felt])
         $forandret[$felt] = $_POST[$felt];
   }

 

Da vil du i teorien få ut en array ( $forandret ) med alle feltene som er forandret siden du sendte ut skjemaet..

 

Finnes flere måte å gjør det på, men denne har jeg vel nå kommet til er den ekleste..

 

:)

Lenke til kommentar

Det greieste er vel uansett å bare sette UPDATE på alle felter når det skal inn i databasen igjen?

Altså

<input type=\"text\" name=\"navn\" value=".$rad['navn'].">
<input type=\"text\" name=\"alder\" value=".$rad['alder'].">

i formen og

$navn = $_POST['navn'];
$alder=$_POST['alder'];
$str = ("UPDATE tabell set navn='$navn', alder='$alder'.........

 

Eller misforsto jeg også nå?

Lenke til kommentar
Det greieste er vel uansett å bare sette UPDATE på alle felter når det skal inn i databasen igjen?

Altså

<input type=\"text\" name=\"navn\" value=".$rad['navn'].">
<input type=\"text\" name=\"alder\" value=".$rad['alder'].">

i formen og

$navn = $_POST['navn'];
$alder=$_POST['alder'];
$str = ("UPDATE tabell set navn='$navn', alder='$alder'.........

 

Eller misforsto jeg også nå?

5765998[/snapback]

 

Joda, men holder på med en prosjekt der det sakl være mulig å 'gå tilbake'. dvs se hvilke forandringer som er blitt gjort.

Lenke til kommentar
Aha, da skjønner jeg. Men du har altså funnet en løsning på problemet uansett?

5767378[/snapback]

 

Jeg hadde vel igrunn en løsning, lurte på hva tanker andre hadde om problemet. Ikke alltid jeg velger den ekleste løsningen, da er det greit å høre med andre hva de synes :)

 

EDIT: En fin måte å lære på

Endret av trondes
Lenke til kommentar

Eg liker å ha to felter, et hidden og en input. Deretter sjekker dette når brukeren har trykket på submit.

 

Ellers, dersom du ønsker å kunne se tilbake på endringer som er gjort, ville eg opprettet en ny tabell som inneholder alle endringene, sortert på dato. Den nyeste er da den som er reell.

Lenke til kommentar
Eg liker å ha to felter, et hidden og en input. Deretter sjekker dette når brukeren har trykket på submit.

 

Ellers, dersom du ønsker å kunne se tilbake på endringer som er gjort, ville eg opprettet en ny tabell som inneholder alle endringene, sortert på dato. Den nyeste er da den som er reell.

5767567[/snapback]

 

 

utfører du sjekkingen når brukeren trykker på submit? javascript ? hmm.. hadde kanskje ikke vært så dumt det heler.. felt som ikke var forandret ville da ikke blit sendt tilbake..

 

Har 2 tabeler ja, det er også muligheten til å krysse av feks forandringer som ble gjort sist uke, slik at den blir tilbake stilt..

 

Ser ut som det virker nå.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...