|
| 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 !!!
| |
|
|