qualitum logo
Infoga datum och tid när uppdaterad

PHPportalen Forum Index » PHP Mjukstart
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
Ralle



Medlem i: 3341 dagar

Status: Offline



#702272
Inlägg Skrivet: 2011-02-28 18:20      Ämne: Infoga datum och tid när uppdaterad Citera

När jag uppdaterar databasen via formulär vill jag få med datumet för uppdateringen.
Jag har en kolumn i databastabellen som jag döpt till datum_uppdaterad, och vill då att varje gång man uppdaterar ska datum och tid uppdateras i denna kolumn.

Hur gör man det?
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Zenco



Medlem i: 1146 dagar

Status: Offline



#702278
Inlägg Skrivet: 2011-02-28 19:04      Ämne: Citera

Ska vi se om ja kan hjälpa med det.

Ja förmodar att du kör vanlig php och mysql samt html

i formuläret finns säkert en
<form action="resultat.php">
</form>

och i din fil resultat.php finns säkert något som plockar upp hela formuläret

PHP:
1:
 
2:
//connecta till din databas
3:
 
4:
if(isset($_POST['submit'])){
5:
 
6:
$datetime=date('Y-m-d H:i:s'); //variabel blir dagens datum
7:
 
8:
$query=UPDATE tabellensnamn SET datum_uppdaterad='{$datetime}'
9:
mysql_query($query);  //utför mysql 
10:
}
11:
 

nu uppdaterar du databas tabellen och ändrar alla med kolumen datum_uppdaterade, självklart borde du ha en WHERE sats men ja vet inte riktigt hur din databas ser ut.

De bästa skulle vara om du beskrev ditt problem och var du stöter på problem, om det är din PHP kod eller din Mysql Query sats eller någonting annat.

Hoppas att de va till någon nytta.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Ralle



Medlem i: 3341 dagar

Status: Offline



#702281
Inlägg Skrivet: 2011-02-28 19:21      Ämne: Citera

Hmmm...
Problemet jag har är att jag inte har nån idé om hur jag ska göra egentligen.
Nån resultat.php har jag inte, men antagligen någon motsvarande.

Hur jag ska plocka fram datumet sen ur databasen är nog lugnt, problemet är att sätta datumet till databasen.

Men jag ska titta på det du skrivit och se om jag kan komma på nåt...
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
marabou
Administratör



Medlem i: 3483 dagar
Från: Sveriges framsida
Status: Offline



#702284
Inlägg Skrivet: 2011-02-28 19:48      Ämne: Citera

Du får gå igenom koden och hitta den SQL-fråga som skickar data från formuläret till databasen. Det är förmodligen något i stil med det som Zenco skriver: ... UPDATE tabell SET ....

Där lägger du till din kolumn datum_uppdaterad till aktuell tid (som Zenco visar).
 

_________________
"Never argue with stupid people. They will bring you down to their level and beat you with experience."
- Mark Twain
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Ralle



Medlem i: 3341 dagar

Status: Offline



#702290
Inlägg Skrivet: 2011-02-28 20:57      Ämne: Citera

Jag hittade var den skickar data (var ju jag som lagt in den efter tips i annan tråd här)
Jag provade lägga in koden, men då fungerar inte sidan alls, det är som om filen inte finns.
(samma problem som jag nyligen fick hjälp med i annan tråd här)

Så här ser det ut nu, med denna kod plus motsvarande som uppdaterar texten, den koden fungerar:
KOD:
1:
 
2:
<?php
3:
if(isset($_POST['newsText'])) {
4:
    $sql = 'UPDATE holowiki_skyddad SET text="'.$_POST['newsText'].'" WHERE id="'.$_POST['rowId'].'";';
5:
   mysql_query($sql) or die(mysql_error());
6:
}
7:
?>
8:
 
9:
<?php
10:
if(isset($_POST['submit'])){
11:
$datetime=date('Y-m-d H:i:s'); //variabel blir dagens datum
12:
$query=UPDATE holowiki_skyddad SET datum_uppdaterad='{$datetime}';
13:
mysql_query($query);  //utför mysql
14:
}
15:
?>
16:
 

Har jag tänkt rätt, eller är det galet?
Nån som ser nåt fel i koden som gör att sidan inte fungerar?

Kom på det där med WHERE också...
Om ni ser hur det ovan ser ut, som redigerar texten, då kanske nån kan klura ut hur detta med datumet ser ut?

Jag har provat allt möjligt, men lyckas inte...
Antingen visas inte sidan alls, eller så fungerar den men den skriver inget datum...

Jag uppdaterar lite här igen:
Jag fick det att fungera lite...
Den skriver nu 2011, vilket jag antar är året, men inget mer...?
I en annan tabell som skriver datum (som jag försökt plankat men inte lyckats) blir det bara en massa siffror i databasen, som vid utskrift blit datum och klockslag...
Men här blev det 2011 i databasen...

Hur det än ska vara så vill jag gärna ha mer än bara årtalet...
Vad gör jag för fel?
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Zenco



Medlem i: 1146 dagar

Status: Offline



#702296
Inlägg Skrivet: 2011-02-28 22:31      Ämne: Citera

Hej igen!
Den koden som du har där hjälper mig att förstå din situation lite bättre.

Du behöver inte klistra in min kod, det räcker med att du altererar din kod lite så att den lägger in datumet.

PHP:
1:
<?php
2:
if(isset($_POST['newsText'])) {  
3:
    $datetime=date('Y-m-d H:i:s'); //variabel blir dagens datum
4:
    $sql "UPDATE holowiki_skyddad SET text=".$_POST['newsText'].", datum_uppdaterad=".$datetime." WHERE id=".$_POST['rowId'];
5:
   mysql_query($sql) or die(mysql_error());
6:
}
7:
?>


Detta borde göra det du vill.
Som du ser så sätter denna IF sats in text till newsText och så har ja lagt in att datum_uppdaterad = dagens datum

Din $sql kod verkar blanda ihop " och ' och så verkar den vara knasig i slutet med '";';

Du sa tidigare att de fungerade och att du fick fram 2011 men inget mer. Kan de vara så att kolumnen är begränsning i själva MYSQL.
Kan du se om din kolumn som heter "datum_uppdaterad" är en INT/VARCHAR/DATE/DATETIME?

Det är inte så bra att stoppa in $_POST[] direkt i databasen av säkerhetsskäl.
För att undvika detta kan du läsa lite om Mysql injections.

Hoppas att de löser sig!
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Ralle



Medlem i: 3341 dagar

Status: Offline



#702304
Inlägg Skrivet: 2011-02-28 23:03      Ämne: Citera

Efter lite pysslande så fungerar det nu!
Tack för hjälpen!

En sak bara... Tiden blir en timme fel...
Jag skrev en post nu klockan 21:59, och när den visas står det 20:59.

Om det är skrivningen till databasen eller visningen från databasen som felar vet jag inte...

Tips?
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Zenco



Medlem i: 1146 dagar

Status: Offline



#702317
Inlägget är accepterad som det rätta svaret Skrivet: 2011-03-01 00:42      Ämne: Citera

De finns säkert flera sätt att lösa detta problem på, men den första som kommer mig på tankarna är denna

PHP:
1:
 $datetime=date('Y-m-d H:i:s'time() + 3600); //byt ut gamla mot denna 


Den nya raden lägger till 3600 sekunder på den tiden som du har.

De borde funka som en enkel lösning.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Ralle



Medlem i: 3341 dagar

Status: Offline



#702332
Inlägg Skrivet: 2011-03-01 09:11      Ämne: Citera

Ok, Ska testa...
Tackar!
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Ralle



Medlem i: 3341 dagar

Status: Offline



#702379
Inlägg Skrivet: 2011-03-01 16:16      Ämne: Citera

Har testat, verkar fungera...
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Wedge
Administratör



Medlem i: 4253 dagar
Från: Järfälla
Status: Offline



#702380
Inlägg Skrivet: 2011-03-01 16:29      Ämne: Citera

Varför inte använda ett TIMESTAMP-fält i databasen, så tidsmärks alla INSERT- och UPDATE-operationer automatiskt utan att man explicit behöver ange tid i sin query...

http://dev.mysql.com/doc/refman/5.1/en/timestamp.html
Citat:
The TIMESTAMP data type offers automatic initialization and updating. You can choose whether to use these properties and which column should have them:
•For one TIMESTAMP column in a table, you can assign the current timestamp as the default value and the auto-update value. It is possible to have the current timestamp be the default value for initializing the column, for the auto-update value, or both. It is not possible to have the current timestamp be the default value for one column and the auto-update value for another column.
 

_________________
Gomoku.se | PHP6.se
Skådebröd är fullt av optisk fiber
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » PHP Mjukstart
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic
qualitum logo