/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
gem aktuelle dato i mysql
Fra : Stoffer


Dato : 09-01-05 20:04

Hej! stadig begynder men har kastet mig over at lave et cms, dog er jeg
startet med et nyhedssystem for ligesom at afprøve mine evner.
Er det muligt at indsætte den aktuelle dato, samt tid i min database når jeg
gemmer min nyhed?
har prøvet mig frem med den her,men det fungerer ikke ligesom rigtigt..

<?php
include('db_connect.php');

$navn = $_POST['navn'];
$beskrivelse = $_POST['beskrivelse'];
$indhold = $_POST['indhold'];

$addnyheder = mysql_query("INSERT INTO nyheder (navn, dato, beskrivelse,
indhold) VALUES ('$navn', '$now())', '$beskrivelse', '$indhold')")
or Die(mysql_error());
echo "success <a href='laes.php'>Læs nyhederne HER</a>";
?>

Istedet for at gemme datoen gemmer den "now()"..hvilket ikke helt er
meningen!

Hvordan gør man??
Christoffer



 
 
Thomas Lindgaard (09-01-2005)
Kommentar
Fra : Thomas Lindgaard


Dato : 09-01-05 21:35

On Sun, 09 Jan 2005 20:03:34 +0100, Stoffer wrote:

> $addnyheder = mysql_query("INSERT INTO nyheder (navn, dato, beskrivelse,
> indhold) VALUES ('$navn', '$now())', '$beskrivelse', '$indhold')")
> or Die(mysql_error());
> echo "success <a href='laes.php'>Læs nyhederne HER</a>";
> ?>
>
> Istedet for at gemme datoen gemmer den "now()"..hvilket ikke helt er
> meningen!

Der er ingen funktion now() i PHP. Du kan få et timestamp vha. time() i
stedet.

.... og så skal du ikke skrive '$time()' (og heller ikke den parentes du
har for meget efter now()). Dvs.

$timestamp = time();
$sql = "INSERT INTO nyheder (navn, dato, beskrivelse, indhold
VALUES ('$navn', $timestamp, '$beskrivelsen', '$indhold')";

--
Mvh.
/Thomas


Christoffer (09-01-2005)
Kommentar
Fra : Christoffer


Dato : 09-01-05 22:03

> Der er ingen funktion now() i PHP. Du kan få et timestamp vha. time() i
> stedet.
Der kan man se...

> $timestamp = time();
> $sql = "INSERT INTO nyheder (navn, dato, beskrivelse, indhold
> VALUES ('$navn', $timestamp, '$beskrivelsen', '$indhold')";
præcis! tusind tak for hjælpen!!



Christoffer (09-01-2005)
Kommentar
Fra : Christoffer


Dato : 09-01-05 22:32

>> $timestamp = time();
>> $sql = "INSERT INTO nyheder (navn, dato, beskrivelse, indhold
>> VALUES ('$navn', $timestamp, '$beskrivelsen', '$indhold')";
> præcis! tusind tak for hjælpen!!

Har ikke den store kodningsdag idag.. nu kan jeg ikke få min form til virke,
(skønt den virkede i eftermiddags...)
et hurtigt spørgsmål--

<?php
$tid = time();

print $tid;
?>
virker fint..
men sætter jeg den ind i min kode fra før, får jeg en fejl i min linje 7 (
hvor jeg definerer variablen $tid, som vist i eksemplet) hvad er galt??



Kim Emax (09-01-2005)
Kommentar
Fra : Kim Emax


Dato : 09-01-05 22:35

Christoffer wrote:
>>>$timestamp = time();
>>>$sql = "INSERT INTO nyheder (navn, dato, beskrivelse, indhold
>>> VALUES ('$navn', $timestamp, '$beskrivelsen', '$indhold')";

> men sætter jeg den ind i min kode fra før, får jeg en fejl i min linje 7 (
> hvor jeg definerer variablen $tid, som vist i eksemplet) hvad er galt??

Jeps, for nu mangler du '' om $timestamp. Når du nu alligevel gemmer din
forspørgsel i $sql, så er det oplagt at printe den ud i en debug
situation og se, hvad der går galt. Det kræver selvfølgelig at du ved at
alt andet end tal _skal_ være pakket ind i ''. En god hoved regel er
at man altid har '' om sine variabler ved manipulation med databaser.

Se mit svar andetsteds i tråden vedr. indsættelse af tid.

--
Take Care
Kim Emax - master|minds - Vi tænker IT for dig...
Konsulentbistand, programmering, design & hosting.
http://www.masterminds.dk

Thomas Lindgaard (11-01-2005)
Kommentar
Fra : Thomas Lindgaard


Dato : 11-01-05 12:34

On Sun, 09 Jan 2005 22:35:18 +0100, Kim Emax wrote:

> En god hoved regel er at man altid har '' om sine variabler ved
> manipulation med databaser.

Gælder det også tal - altså hvis database-skemaet definerer en int,
skal/kan man så sige:

$sql = "INSERT INTO tabel (en_int) VALUES ('42')";

?

--
Mvh.
/Thomas


Peter Brodersen (11-01-2005)
Kommentar
Fra : Peter Brodersen


Dato : 11-01-05 12:55

On Tue, 11 Jan 2005 12:33:54 +0100, Thomas Lindgaard
<thomas@it-snedkeren.BLACK_HOLE.dk> wrote:

>Gælder det også tal - altså hvis database-skemaet definerer en int,
>skal/kan man så sige:
>
> $sql = "INSERT INTO tabel (en_int) VALUES ('42')";

Du kan godt i MySQL, men det er ikke noget krav. I nogle andre
databaser vil det give en fejl.

En anden mulighed er at sørge for at ens input ganske enkelt er en
integer (fx vha. intval() ).

(finder en tromme frem)
En tredje mulighed er at bruge et abstraktionslag som fx PEAR DB, og
så ikke bekymre sig om quote/escape-fedterier.

--
- Peter Brodersen

Kim Emax (09-01-2005)
Kommentar
Fra : Kim Emax


Dato : 09-01-05 22:31

Thomas Lindgaard wrote:

> Der er ingen funktion now() i PHP. Du kan få et timestamp vha. time() i
> stedet.

nææh, men der findes en now() funktion i mysql, så den er mest oplagt at
bruge:

$addnyheder = mysql_query("INSERT INTO nyheder (navn, dato, beskrivelse,
indhold) VALUES ('$navn', now(), '$beskrivelse', '$indhold')")

--
Take Care
Kim Emax - master|minds - Vi tænker IT for dig...
Konsulentbistand, programmering, design & hosting.
http://www.masterminds.dk

Christoffer (09-01-2005)
Kommentar
Fra : Christoffer


Dato : 09-01-05 22:49

> nææh, men der findes en now() funktion i mysql, så den er mest oplagt at
> bruge:
har også fået det til at virke nu :)

Men som tidligere nemt så kører det ikke helt for mig idag, nu vil den ikke
udskrive navn på udgiveren, men roder videre med det en anden da!

tak for hjælpen



Christoffer (09-01-2005)
Kommentar
Fra : Christoffer


Dato : 09-01-05 22:51

Men det virker igen, ved ikke helt hvorfor :S

tak for hjælpen !!!



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408941
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste