webForumDet fria alternativet

Fel tidszon!!!

24 svar · 667 visningar · startad av Guldstrand

GuldstrandMedlem sedan juli 20041 271 inlägg
#1

Hej alla glada!

Just nu använder jag följande kod för att spara nyheter i min databas.

       mysql_query("Insert Into nyheter(
	   datum, //datetime
	   titel,
	   info,
	   webb) 
	   Values(
	   '".$_POST['titel']."',
	   '".$_POST['info']."',
	   '".$_POST['webb']."', now())")or die(mysql_error());

..men då webbhotellet ligger i Los Angeles, får jag därför fel "tid".
Hur kan jag lägga till/dra ifrån x antal timmar från ovanstående kod.

MatteMedlem sedan aug. 20002 975 inlägg
#2

Det borde gå att göra typ:

mysql_query("Insert Into nyheter( 
       datum, //datetime 
       titel, 
       info, 
       webb) 
       Values( 
       '".$_POST['titel']."', 
       '".$_POST['info']."', 
       '".$_POST['webb']."', DATE_ADD(NOW(), INTERVAL 8 HOUR))")or die(mysql_error());
GuldstrandMedlem sedan juli 20041 271 inlägg
#3

Matte skrev:

Det borde gå att göra typ:

mysql_query("Insert Into nyheter( 
       datum, //datetime 
       titel, 
       info, 
       webb) 
       Values( 
       '".$_POST['titel']."', 
       '".$_POST['info']."', 
       '".$_POST['webb']."', DATE_ADD(NOW(), INTERVAL 8 HOUR))")or die(mysql_error());

Ok, tack.
Ska genast testa. :p

EDIT: Njae, det slog fel på 1 timme, men annars verkar det fungera.

The_HulkMedlem sedan juni 20031 837 inlägg
#4

har du inte fel ordning på dina fält?
du säger att du vill lägga in datum först men har den sist bland värdena?

The_HulkMedlem sedan juni 20031 837 inlägg
#5

LA är väl GMT -8, vi är GMT + 1

MatteMedlem sedan aug. 20002 975 inlägg
#6

Guldstrand skrev:

EDIT: Njae, det slog fel på 1 timme, men annars verkar det fungera.

Testa då med INTERVAL 9 HOUR eller INTERVAL 7 HOUR.

GuldstrandMedlem sedan juli 20041 271 inlägg
#7

Matte skrev:

Testa då med INTERVAL 9 HOUR eller INTERVAL 7 HOUR.

Jag testade med "INTERVAL 9 HOUR", och det fungerade kanon.
Synd bara att det inte fanns någon annan lösning som kunde "omvandla/formatera" alla andra poster som redan finns sparade databasen till RÄTT datum.

MatteMedlem sedan aug. 20002 975 inlägg
#8

Kör då INTERVAL när du hämtar, och låt servern lagra sin aktuella tid.

GuldstrandMedlem sedan juli 20041 271 inlägg
#9

Njae, tror jag väljer att spara med RÄTT datum direkt istället. ;)

Nu till en annan fråga...
Går det att spara datumet när en post ändrades/uppdateras på samma sätt som när jag sparar en ny post!?

Detta är min "ändrings-funktion" i nuläget:

       move_uploaded_file($_FILES['artist_foto']['tmp_name'], "artist_foto/artist_foto_".$_GET['id'].$ext);
       mysql_query("Update artister Set
	   anamn='".$_POST['anamn']."',
	   fnamn='".$_POST['fnamn']."',
	   birthday='".$_POST['birthday']."',
	   formed='".$_POST['formed']."',
	   land='".$_POST['land']."',
	   kat_id='".$_POST['kat_id']."',
	   info='".$_POST['info']."',
	   webb='".$_POST['webb']."',
	   artist_foto='artist_foto_".$_GET['id']."$ext' 
	   Where id='".$_GET['id']."'")or die(mysql_error());
     }
	 else
	 {
       mysql_query("Update artister Set 
	   anamn='".$_POST['anamn']."',
	   fnamn='".$_POST['fnamn']."',
	   birthday='".$_POST['birthday']."',
	   formed='".$_POST['formed']."',
	   land='".$_POST['land']."',
	   kat_id='".$_POST['kat_id']."',
	   info='".$_POST['info']."',
	   webb='".$_POST['webb']."' 
	   Where id='".$_GET['id']."'")or die(mysql_error());
MatteMedlem sedan aug. 20002 975 inlägg
#10

Guldstrand skrev:

Nu till en annan fråga...
Går det att spara datumet när en post ändrades/uppdateras på samma sätt som när jag sparar en ny post!?

Ja, du gör likadant.

... datum = DATE_ADD(NOW(), INTERVAL 9 HOUR) ...
GuldstrandMedlem sedan juli 20041 271 inlägg
#11

Matte skrev:

Ja, du gör likadant.

... datum = DATE_ADD(NOW(), INTERVAL 9 HOUR) ...

Såhär eller:

       move_uploaded_file($_FILES['news_foto']['tmp_name'], "news_foto/news_foto_".$_GET['id'].$ext);
       mysql_query("Update nyheter Set
	   datum='".$_POST['datum']."',
	   titel='".$_POST['titel']."',
	   intro='".$_POST['intro']."',
	   info='".$_POST['info']."',
	   webb='".$_POST['webb']."',
	   source='".$_POST['source']."',
	   news_foto='news_foto_".$_GET['id']."$ext' 
	   Where id='".$_GET['id']."', DATE_ADD(NOW(), INTERVAL 9 HOUR))")or die(mysql_error());
     }
	 else
	 {
       mysql_query("Update nyheter Set
	   datum='".$_POST['datum']."', 
	   titel='".$_POST['titel']."',
	   intro='".$_POST['intro']."',
	   info='".$_POST['info']."',
	   webb='".$_POST['webb']."',
	   source='".$_POST['source']."' 
	   Where id='".$_GET['id']."', DATE_ADD(NOW(), INTERVAL 9 HOUR))")or die(mysql_error());
MatteMedlem sedan aug. 20002 975 inlägg
#12

Nej.
Det är en tid du ska uppdatera. Då bör din sats ligga i SET-delen.
Vilken kolumn är det du ska uppdatera med din tid ?

GuldstrandMedlem sedan juli 20041 271 inlägg
#13

Matte skrev:

Nej.
Det är en tid du ska uppdatera. Då bör din sats ligga i SET-delen.
Vilken kolumn är det du ska uppdatera med din tid ?

Förstår inte riktigt vad du menar. Det är kolummen "datum" som ska uppdateras.

Eller måste jag skapa en ny kolum med "datetime"?

Exempel:
Publicerad: 2006-05-02 15:15
Uppdaterad: 2006-05-02 15:30 (eller om det är en annan dag som posten uppdaterades.)

MatteMedlem sedan aug. 20002 975 inlägg
#14

Då gör du som jag visade, och lägger in det i din SET-del.

GuldstrandMedlem sedan juli 20041 271 inlägg
#15

Matte skrev:

Då gör du som jag visade, och lägger in det i din SET-del.

Såhär eller:

       move_uploaded_file($_FILES['news_foto']['tmp_name'], "news_foto/news_foto_".$_GET['id'].$ext);
       mysql_query("Update nyheter Set
	   titel='".$_POST['titel']."',
	   intro='".$_POST['intro']."',
	   info='".$_POST['info']."',
	   webb='".$_POST['webb']."',
	   source='".$_POST['source']."',
	   news_foto='news_foto_".$_GET['id']."$ext' 
	   Where id='".$_GET['id']."', datum = DATE_ADD(NOW(), INTERVAL 9 HOUR))")or die(mysql_error());
     }
	 else
	 {
       mysql_query("Update nyheter Set
	   titel='".$_POST['titel']."',
	   intro='".$_POST['intro']."',
	   info='".$_POST['info']."',
	   webb='".$_POST['webb']."',
	   source='".$_POST['source']."' 
	   Where id='".$_GET['id']."', datum = DATE_ADD(NOW(), INTERVAL 9 HOUR))")or die(mysql_error());

Sorry om jag verkar TRÖG... :r :x

MeleaMedlem sedan juli 20033 147 inlägg
#16

Nu ligger ju datum = [...] i WHERE-satsen. Som Matte skrev, lägg den i SET istället.

update nyheter set
[...],
datum = DATE_ADD(NOW(), INTERVAL 9
where id = '$_GET[id]'
GuldstrandMedlem sedan juli 20041 271 inlägg
#17

Nu fick jag följande fel...

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' Where id='19'' at line 7

:l

       move_uploaded_file($_FILES['news_foto']['tmp_name'], "news_foto/news_foto_".$_GET['id'].$ext);
       mysql_query("Update nyheter Set
	   titel='".$_POST['titel']."',
	   intro='".$_POST['intro']."',
	   info='".$_POST['info']."',
	   webb='".$_POST['webb']."',
	   source='".$_POST['source']."',
	   datum = DATE_ADD(NOW(), INTERVAL 9,
	   news_foto='news_foto_".$_GET['id']."$ext' 
       Where id='".$_GET['id']."'")or die(mysql_error());
	   }
	 else
	 {
       mysql_query("Update nyheter Set
	   titel='".$_POST['titel']."',
	   intro='".$_POST['intro']."',
	   info='".$_POST['info']."',
	   webb='".$_POST['webb']."',
	   source='".$_POST['source']."',
	   datum = DATE_ADD(NOW(), INTERVAL 9, 
       Where id='".$_GET['id']."'")or die(mysql_error());
MeleaMedlem sedan juli 20033 147 inlägg
#18

Du har ett kommatecken efter INTERVAL 9 i andra SQL-satsen.

MatteMedlem sedan aug. 20002 975 inlägg
#19
       mysql_query("Update nyheter Set 
       titel='".$_POST['titel']."', 
       intro='".$_POST['intro']."', 
       info='".$_POST['info']."', 
       webb='".$_POST['webb']."', 
       source='".$_POST['source']."', 
       datum = DATE_ADD(NOW(), INTERVAL 9 HOUR)
       Where id='".$_GET['id']."'")or die(mysql_error());
GuldstrandMedlem sedan juli 20041 271 inlägg
#20

Matte skrev:

       mysql_query("Update nyheter Set 
       titel='".$_POST['titel']."', 
       intro='".$_POST['intro']."', 
       info='".$_POST['info']."', 
       webb='".$_POST['webb']."', 
       source='".$_POST['source']."', 
       datum = DATE_ADD(NOW(), INTERVAL 9 HOUR)
       Where id='".$_GET['id']."'")or die(mysql_error());

Kanon.. nu fungerade det.
MEN... jag tror att det har blivit någon missuppfattning på vägen.

Nu ändras ju både datumet när posten först sparades, samt när posten blev ändrad/uppdaterad. Det är ju inte korrekt.

Hur fixar jag det?

Jag vill alltså VISA på sidan när nyheten först publicerades, samt när den uppdaterades.

133 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)