Avatar billede techboy992 Praktikant
10. oktober 2012 - 15:33 Der er 15 kommentarer og
1 løsning

Opdatere timestamp ellers insert new PHP MYSQL

Har et problem med at opdatere timestamp i mit script

saetter timesatmp til 0000-00-00 00:00:00
og naestegang opretter den en ny raekke.

Scriptet:
$result = mysql_query("update Log set last_visit='date_date=now()' where user_id='".$user_id."' AND url='".curPageURL()."'");       
if (mysql_affected_rows()==0) {
mysql_query(
"INSERT INTO Log (user_id, url) VALUES('".$user_id."', '".curPageURL()."')");
}
Avatar billede michael_stim Ekspert
10. oktober 2012 - 16:04 #1
Kig på denne linje og se om du kan finde fejlen:

$result = mysql_query("update Log set last_visit='date_date=now()' where user_id='".$user_id."' AND url='".curPageURL()."'");
Avatar billede techboy992 Praktikant
10. oktober 2012 - 16:21 #2
Jeg har gloet paa den linie i time vis uden at kan se hvor det gaar galt

Jeg er ny til php og mysql
Avatar billede michael_stim Ekspert
10. oktober 2012 - 16:30 #3
set last_visit='date_date=now()'

Der er 2 =.
Hedder dit felt data_date eller last_visit?

Desuden tror jeg nok der er en indbygget funktion i MySQL, der opdaterer timestamp automatisk, ved ændringer i rækken.
Avatar billede arne_v Ekspert
10. oktober 2012 - 16:39 #4
felter af typen TIMESTAMP vil default blive opdateret naar raekken aendres
Avatar billede arne_v Ekspert
10. oktober 2012 - 16:39 #5
Avatar billede techboy992 Praktikant
10. oktober 2012 - 17:00 #6
Michael:
Mit felt er last_visit
Raekken aendres ikke, hvis bruger kommer med samme bruger_id og sideurl
Der oprettes en ny raekke hvis user_id eller url er en anden

Arne:
men raekken skal ikke aendres user id og url er altid samme for den enkelte raekke det eneste er at timestamp skal updateres naar en siden loades. ellers skal raekken foerst slettes og der efter lave en ny eller ???

Last_visit Skal bruges i mit andet script for ikke at vise et link, hvis det har vaeret klikket for under 24 timer siden.
Avatar billede olebole Juniormester
10. oktober 2012 - 17:02 #7
<ole>

@techboy992: Jeg må endnu engang pointere det uhensigtsmæssige i, at spilde din tid på at lære at skrive forældet databasekode  =)

Den funktionalitet, Michael skriver om, må være noget i stil med:

CREATE TABLE `foobar` (
  ... ... ...,
  ... ... ...,

  `stamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

/mvh
</bole>
Avatar billede arne_v Ekspert
10. oktober 2012 - 17:10 #8
TIMESTAMP understoetter ikke update ved SELECT.

Jeg er noget skeptisk overfor ideen. Jeg tror ikke at det er godt for performance at opdatere en raekke hver gang den skal hentes.

Men:

"update Log set last_visit=now() where user_id=?"

boer virke.
Avatar billede techboy992 Praktikant
10. oktober 2012 - 17:24 #9
OLe :

Jeg ved det :) :)

Arne:

Det vil virke, men er noedt til at have current url med ogsaa da brugeren har en raekke links at klikke hver dag der alle ender paa et ID
ID    user_id        url                                  last_visit
1      1              click.php?id=1                          igaar
2      1              click.php?id=2                            now
3      2              click.php?id=1                    2 timer siden
Osv

Haaber det er forstaeligt hvad jeg vil nu
Avatar billede arne_v Ekspert
10. oktober 2012 - 17:27 #10
"update Log set last_visit=now() where user_id=? and url=?"
Avatar billede techboy992 Praktikant
10. oktober 2012 - 17:30 #11
I et andet script skal jeg bruge last_visit, til ikke at vise link hvis det har vaeret klikket inden for de sidste 24 timer.
Avatar billede techboy992 Praktikant
10. oktober 2012 - 17:48 #12
faerdigt Resultat og virker:

$result = mysql_query("update Log set last_visit=now() where user_id='".$user_id."' and url='".curPageURL()."' ");       
if (mysql_affected_rows()==0) {
mysql_query(
"INSERT INTO Log (user_id, url, last_visit) VALUES('".$user_id."', '".curPageURL()."' '".now()."')");
}
Avatar billede techboy992 Praktikant
10. oktober 2012 - 17:51 #13
arne vil du have point saa send mig et svar indlaeg
Avatar billede arne_v Ekspert
10. oktober 2012 - 18:08 #14
svar
Avatar billede arne_v Ekspert
10. oktober 2012 - 18:09 #15
Avatar billede techboy992 Praktikant
10. oktober 2012 - 19:13 #16
Arne
Tak for hjalp

kunne du kigge paa den her ogsaa

http://www.eksperten.dk/spm/970290#reply_7989870

viser ikke link mere
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester