Trådstart 1 maj 2006 19:06 #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.
Matte Medlem sedan aug. 2000 2 975 inlägg 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());
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.
EDIT: Njae, det slog fel på 1 timme, men annars verkar det fungera.
T The_Hulk Medlem sedan juni 2003 1 837 inlägg 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?
T The_Hulk Medlem sedan juni 2003 1 837 inlägg LA är väl GMT -8, vi är GMT + 1
Matte Medlem sedan aug. 2000 2 975 inlägg
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 .
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.
Matte Medlem sedan aug. 2000 2 975 inlägg Kör då INTERVAL när du hämtar, och låt servern lagra sin aktuella tid.
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());
Matte Medlem sedan aug. 2000 2 975 inlägg
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) ...
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());
Matte Medlem sedan aug. 2000 2 975 inlägg 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 ?
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.)
Matte Medlem sedan aug. 2000 2 975 inlägg Då gör du som jag visade, och lägger in det i din SET-del.
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...
M Melea Medlem sedan juli 2003 3 147 inlägg 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]'
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
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());
M Melea Medlem sedan juli 2003 3 147 inlägg Du har ett kommatecken efter INTERVAL 9 i andra SQL-satsen.
Matte Medlem sedan aug. 2000 2 975 inlägg 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());
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.