[mysql]UPDATE verandert ook mn timestamp

Pagina: 1
Acties:

  • douweh
  • Registratie: Maart 2001
  • Laatst online: 20-08 18:34
Ik heb een tabel,

hierin zit onder andere een timestamp->"startdatum" en een
Int->"huidigaantalviews"....

Nu doe ik een Update..

"UPDATE tabel SET huidigaantalviews=huidigaantalviews+1"

Het probleem is dat nu ook de timestamp aangepast (=verhoogd) wordt en dat moet ik niet hebben, aangezien de timestamp bevat wanneer de entry aangemaakt is...

Hoe kan dit?

  • Mior
  • Registratie: Maart 2000
  • Laatst online: 21:34
Column type toevallig Date now() :?

  • douweh
  • Registratie: Maart 2001
  • Laatst online: 20-08 18:34
gewoon timestamp..

wel aangemaakt met phpMyAdmin

  • Martin Sturm
  • Registratie: December 1999
  • Laatst online: 23:27
Klopt. Als je het column type timestamp maakt, wordt ie automatisch bij elke update/insert geupdate, ook al geef je em niet mee in de query.

Oplossing: gebruik i.p.v timestamp gewoon int ofzo

  • Mior
  • Registratie: Maart 2000
  • Laatst online: 21:34
Op zondag 17 juni 2001 16:42 schreef douweh het volgende:
gewoon timestamp..

wel aangemaakt met phpMyAdmin
ja 'gewoon' timestamp.. met wat voor parameters?

Als je now() hebt meegegeven zou het kunnen zijn datie elke keer de huidige datum/tijd pakt bij het updaten.

  • douweh
  • Registratie: Maart 2001
  • Laatst online: 20-08 18:34
Op zondag 17 juni 2001 16:49 schreef msturm10 het volgende:
Klopt. Als je het column type timestamp maakt, wordt ie automatisch bij elke update/insert geupdate, ook al geef je em niet mee in de query.

Oplossing: gebruik i.p.v timestamp gewoon int ofzo
Ok bedankt...
dan gebruik ik wel een int

  • tomato
  • Registratie: November 1999
  • Niet online
Onzin oplossingen :)

Als je een TIMESTAMP veld niet wilt wijzigen bij een UPDATE kun je dit zo doen:
code:
1
UPDATE t SET a = 'a', timestampveld = timestampveld WHERE y = 'y'

Maar gebruik natuurlijk alleen een TIMESTAMP veld als je dat ook nodig hebt. Een aardig voorbeeld is bijvoorbeeld een table voor logging.
Gebruik anders gewoon een DATETIME veld oid. Een int met een of andere timestamp die bruikbaar is in een willekeurige programmeertaal is imho nogal ranzig.

Verwijderd

maar hoe kan je dan een timestamp in een database zetten zonder dat het veld een timestamp maar een varchar of zo is.

  • Grum
  • Registratie: Juni 2001
  • Niet online
lees es 2 posts omhoog

Verwijderd

uh

Ok bedankt...
dan gebruik ik wel een int

hmm...

maar ik bedoel de code van timestamp

$timestamp of zo.

  • Grum
  • Registratie: Juni 2001
  • Niet online
zeer duidelijk .. not :)

Verwijderd

does gewoon niet zo moeilijk en vertel het me dan gewoon.

Als jij het zo goed weet kan jij me dat toch gewoon effe vertellen.

Ik wil gewoon een timestamp een een andere veld dan een timestamp krijgen.

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
Op zaterdag 30 maart 2002 21:09 schreef Esmer het volgende:
does gewoon niet zo moeilijk en vertel het me dan gewoon.

Als jij het zo goed weet kan jij me dat toch gewoon effe vertellen.

Ik wil gewoon een timestamp een een andere veld dan een timestamp krijgen.
hij bedoel gewoon je timestamp uit de database halen
en die waarde weer terugschrijven
code:
1
2
3
4
5
SELECT timestamp, views FROM tabel

$nieuwe_views = $views + 1;

UPDATE tabel SET views='$nieuwe_views', timestamp='$timestamp'

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


Verwijderd

jah ok.


Maar als ik eerst de timestamp schrijf via een post message dan moet ik daarna hem terug schrijven naar de database in een andere veld.

jah ok maar kan dat dan niet een stuk makkelijker.

  • Grum
  • Registratie: Juni 2001
  • Niet online
Esmer: does gewoon niet zo moeilijk en vertel het me dan gewoon.
Als jij het zo goed weet kan jij me dat toch gewoon effe vertellen.
Ik wil gewoon een timestamp een een andere veld dan een timestamp krijgen.


hou je brutale *** es ff ofzo :r

als jij een totaal onduidelijke vraag stelt dan ga je et gek vinden dat ik je niet snap. :?

ik zie dat je redelijk nieuw bent .. maar sommige dingen gaan gewoon niet op deze manier ...

het is

1/ niet jouw topic
2/ een enorm onduidelijke vraag
3/ zielig dat je zo reageert
4/ zo op te zoeken op internet
[5/ een OUD topic wat je omhoog hebt geschopt ondanks dat je der al 1 open hebt staan over dit onderwerp.]

  • elnino
  • Registratie: Augustus 2001
  • Laatst online: 03-09 05:13
Op zaterdag 30 maart 2002 21:17 schreef Esmer het volgende:
jah ok maar kan dat dan niet een stuk makkelijker.
Dit heb ik al aangegeven in [topic=454584/1/50].

Hoewel Grum's manier niet mijn manier van uitdrukken is, geef ik hem wel gelijk. Je vraag is nogal onduidelijk (een timestampveld in een varchar :? ) en in een ander topic is er al antwoord gegeven.

Verwijderd

laat het maar zitten.

Het schijnt wanneer je iets in de table van de database wijzigt waar een timestamp staat die mee wijzigd.

Ik ga wel effe zoeken van dat die alleen het ene wijzigt en de rest bevriest.

  • GraasGast
  • Registratie: Oktober 2000
  • Laatst online: 03-09 17:11

GraasGast

Analogue Heaven

Zucht... (dit is al de derde reactie van vandaag die ik met een zucht begin :()

Waarom luisteren jullie niet naar Tomato?
Op zaterdag 30 maart 2002 21:12 schreef SWINX het volgende:

[..]

hij bedoel gewoon je timestamp uit de database halen
en die waarde weer terugschrijven
code:
1
2
3
4
5
SELECT timestamp, views FROM tabel

$nieuwe_views = $views + 1;

UPDATE tabel SET views='$nieuwe_views', timestamp='$timestamp'
Das natuurlijk een onzin-oplossing!
ten eerste hoef je bij
code:
1
timestamp='$timestamp'

geen quotes te gebruiken omdat een integer is. en ten tweede is dit veel makkelijker (en sneller(en (c) tomato ;)))
code:
1
UPDATE tabel SET views=views+1, timestamp=timestamp

die timestamp=timestamp zorgt ervoor dat de timestamp gelijk blijft :)

edit: views=views+1 toegevoegd :o

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
Op zondag 31 maart 2002 00:27 schreef GraasGast het volgende:

Das natuurlijk een onzin-oplossing!
ten eerste hoef je ..... [bla bla bla]
is het je opgevallen dat de rest van de code ook niet klopt? :?

Tis ook maar pseudo :(

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • GraasGast
  • Registratie: Oktober 2000
  • Laatst online: 03-09 17:11

GraasGast

Analogue Heaven

Op zondag 31 maart 2002 00:31 schreef SWINX het volgende:

[..]

is het je opgevallen dat de rest van de code ook niet klopt? :?

Tis ook maar pseudo :(
ah ok...mja pseuso is eigenlijk nog abstracter...dingen achterwege laten is anders dan dingen fout doen...maar ach het gaat om het onderste stukje code :)

  • Martink
  • Registratie: Juni 2001
  • Laatst online: 11-02-2025
Ik zet timestamp altijd in varchar werkt prima :)

Verwijderd

Op zondag 31 maart 2002 00:59 schreef Martink het volgende:
Ik zet timestamp altijd in varchar werkt prima :)
je kan hem ook in een BLOB zetten ;) werkt ook prima *D

edit:
(ff zinnige opmerking erbij om het niveau beetje op te krikken)
Gebruik types waar ze voor verzonnen zijn, anders ben je gewoon verkeerd bezig. Verkeerd bezig zijn kost je snelheid, en meestal ook nog onzinnig veel ruimte.
Pagina: 1