forma nastavitev in shranjevanje le teh
 
markoslo 5. avg 2008 13:12:32 Pridružen od:
5. avg 2008
3 objav
0 0 0
#1

Pozdravljeni,



imam formo za spreminjanje gesla, spremembo prikazne slike, starost, mesto.

Vse skupaj imam v eni formi, in tako samo en gumb za shranjevanje nastavitev.



Zanima me kako bi lahko preveril katere nastavitve so bile iz strani spremenjene, da bi v bazo shranil le te ?


všeč(0) ni všeč(0) spam(0)
 
Roky 5. avg 2008 13:23:51 Pridružen od:
9. apr 2008
2506 objav
3240 335 107
#2

Ena rešitev bi bla (php koda), da začetno stanje shraniš v SESSION ali v array spremenljivko, potem pa narediš primerjavo (greš recimo skozi začetno tabelo oz. session (kjer imaš shranjene stare podatke) in primerjaš $_POST podatke (validirane). Tisto, kar je v POST drugače shraniš.



Ne vem pa zakaj ne bi kar vse shranil, imaš toliko podatkov da se ti splača pisat logiko zadej zato?


všeč(0) ni všeč(0) spam(0)
rok.meglic@gmail.com - 031 492 148
 
markoslo 5. avg 2008 13:46:36 Pridružen od:
5. avg 2008
3 objav
0 0 0
#3

V bistvu podatkov ni dosti (samo tisto kar sem navedel v prvem postu), sem pač mislil, da bi bilo boljše, če nebi shranjeval vsega. Sam sem mislil, da bi blo pač bolše da nebi pisal v bazo če ni potrebe, ampak če to ne obremenjuje strežnika tako zelo, lahko vpišem tudi vse..


všeč(0) ni všeč(0) spam(0)
 
imp 5. avg 2008 16:20:44 Pridružen od:
11. apr 2007
894 objav
3 1 0
#4

Če imaš to za urejanje, potem le v formo kličeš tisto kar je ŽE v bazi in potem kaj popraviš in spremeniš po želji. (recimo pokličeš v value: value="<?=$NekajIzBaze?>" )



Če nič ni v bazi pa bo itak prazno pokazalo.:)


všeč(0) ni všeč(0) spam(0)
 
Roky 5. avg 2008 16:46:04 Pridružen od:
9. apr 2008
2506 objav
3240 335 107
#5

markoslo: Še nekaj s strani MySQL. Če narediš UPDATE in se vrednosti ne spremenijo jih MySQL ne prepiše in prišpara nekaj "dragocenega" časa. Vsekakor se ti POMOJE ne splača pregledovat ali je bilo popravljeno ali ne. Ob shranitvi pač posodobi njihov profil v vsakem primeru:) Simpl je ta najtabuljše!


všeč(0) ni všeč(0) spam(0)
rok.meglic@gmail.com - 031 492 148
 
Alkimisticus 5. avg 2008 17:59:00 Pridružen od:
22. apr 2008
170 objav
21 24 2
#6

Kot prvo naj povem da so Roky-jeva in iMP-ova rešitvi najbolj enostavni in če ne rabiš zgodovine spremeb tudi najboljše.



Sam jaz bi odgovoril na tvojo prvo zahtevo, v kateri želiš vedeti kaj se je spremenilo.

Rešitev ki jo v Javi (model 2 arhitektura) uporabljam je da shraniš podatke v nek objekt (Bean) in napišeš hashCode in equals metodi.



Grobi postopek pa je

Potegneš podatke iz baze in jih shraniš v Bean

Prikažeš vsebimo Bean na Spletni strani (forma)

Submitaš formo

Ujameš podatke (POST) in jih shraniš v nov Bean, ki je istega tipa.

Primerjaš Bean-a z equals.



Tako samo veš da so podatki spremenjeni, če hočeš natančno vedeti KATERI moraš malo predelat standardno equals metodo in bean (označevanje spremenjenih vrednosti).



Da se naredit tudi brez Beanov, sam potem več kode preneseš na kontroler.


všeč(0) ni všeč(0) spam(0)
 
markoslo 5. avg 2008 21:51:31 Pridružen od:
5. avg 2008
3 objav
0 0 0
#7

Hvala za odgovore, nisem vedel, da mysql ne prepiše enakih vnosov, če uporabiš update. Bom kr izpustil preverjanje, ker itak imam napisan query z update.



Bom si pa zapomnil tole rešitev z objekti. :)



Lp


všeč(0) ni všeč(0) spam(0)
 
Roky 5. avg 2008 22:03:04 Pridružen od:
9. apr 2008
2506 objav
3240 335 107
#8

Evo še uradna razlaga:



When using UPDATE, MySQL will not update columns where the new value is the same as the old value. This creates the possibility that mysqlaffectedrows() may not actually equal the number of rows matched, only the number of rows that were literally affected by the query.


všeč(0) ni všeč(0) spam(0)
rok.meglic@gmail.com - 031 492 148
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se