[php/mysql] timestamp probleempje

Pagina: 1
Acties:

  • chuxiej
  • Registratie: Februari 2001
  • Laatst online: 13-07-2020
Ik werk nu voor het eerst me de timestamp functie en ben er erg van onder de indruk.
Nu heb ik voor een tourney systeem 3 mysql velden als timestamp gemaakt.
date, date1, date2.
Als ik nu de timestamps toevoeg in de database dan krijg ik ipv bv 1010876400 0000000000

Weet iemand wat ik fout doe?

www.dannyhiemstra.nl


Verwijderd

Het lijkt me makkelijker als je even het stukje code post dat de tijd in de database zou moeten zetten.

  • chuxiej
  • Registratie: Februari 2001
  • Laatst online: 13-07-2020
PHP:
1
2
3
4
5
6
7
8
9
10
<?
$sql = "INSERT INTO hg_global
(Tname,date,checkin_start,checkin_end,teams,map,last_signup,status,leader,game_type,game,tourney_type)
VALUES
('$Tname','$value[date]','$value[checkin_start]','$value[checkin_end]','$teams','$map','$value[last_signup]','$status','$leader','$game_type','$game','$tourney_type')";
if(query($sql))
   echo("Tourney added in to the database.<Br>\n");
else
   echo("Database Error");
?>

www.dannyhiemstra.nl


Verwijderd

en wat is de waarde van $value[date]?

  • chuxiej
  • Registratie: Februari 2001
  • Laatst online: 13-07-2020
PHP:
1
2
3
4
5
6
7
8
9
<?
function DateToStamp($day,$month,$year,$hour=0,$min=0)
{
if(($day <= "31") AND ($month <= "12") AND ($hour <= "24") AND ($min <= "59"))
return mktime($hour,$min,0,$month,$day,$year);
else
return FALSE;
}
?>

een timestamp die door deze functie word gegenereerd vanaf een datum als bron

www.dannyhiemstra.nl


Verwijderd

Wat voor type is die date? En verder als je met INTs werkt (en dat zou ik in dit geval doen) moet je geen apostrofs (') gebruiken.

  • chuxiej
  • Registratie: Februari 2001
  • Laatst online: 13-07-2020
http://www.chat-stars.com/script.php

daar is de sourch van het bestand

www.dannyhiemstra.nl


  • chuxiej
  • Registratie: Februari 2001
  • Laatst online: 13-07-2020
p.s. het script is nog niet af :P
En ja je hebt gelijk met de ' weglaten alleen daar ben ik ook pas achtergekomen |:( dus vergeet het nog wel is

www.dannyhiemstra.nl


Verwijderd

als je met data's werkt in mysql is het misschien een goed idee om de ingebouwde mysql functie DATE_FORMAT te gebruiken (zie http://www.mysql.com)

deze werkt (bijna) het zelfde als de date functie in php. Als mysql veld kun je dan bijvoorbeeld "timestamp" gebruiken. Met behulp van DATE_FORMAT kun je dan heel gemakkelijk de tijd in het goede formaat uit de db halen. Ook is het timestamp veld gewoon te gebruiken in ORDER BY queries.
(timestamp veld wordt automatisch geupdate zodra je het record in de database veranderd)

Verwijderd

Op donderdag 10 januari 2002 16:31 schreef Zef het volgende:
[Van] wat voor type is die date?
:) (in de database dus)

Verwijderd

je maakt het jezelf heel moeilijk door die timestamp zelf te maken. Als je een veld in MySQL aanmaakt met als soort timestamp, dan vult MySQL dit veld automatisch zodra je een post insert. Je hoeft dus ook zelf dat veld niet te vullen. MySQL maakt gebruik van een UNIX timestamp. Dit zijn het aantal seconden na 1 januari 1970. In PHP zit deze functie ook: time(). Deze geeft hetzelfde als de MySQL timestamp. Wil je deze omzetten naar een gangbare datum, dan kun je date() gebruiken in deze vorm:
date("Y", $timestamp);
In de variabele $timestamp moet de timestamp zitten. Nu pluk je het jaar eruit. Meer info over date op php.net

  • chuxiej
  • Registratie: Februari 2001
  • Laatst online: 13-07-2020
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
   Tid int(3) NOT NULL auto_increment,
   Tname varchar(30) NOT NULL,
   date timestamp(14),
   checkin_start timestamp(14),
   checkin_end timestamp(14),
   teams int(3) NOT NULL,
   map varchar(50) NOT NULL,
   last_signup timestamp(14),
   status int(1) DEFAULT '1' NOT NULL,
   leader varchar(9) NOT NULL,
   game_type varchar(4) NOT NULL,
   game varchar(30) NOT NULL,
   tourney_type varchar(30) NOT NULL,
   PRIMARY KEY (Tid)

Dus moet ik gewoon ipv een timestamp sturen een datum sturen naar het timestamp veld?

www.dannyhiemstra.nl


  • chuxiej
  • Registratie: Februari 2001
  • Laatst online: 13-07-2020
dus ik zou het beste gewoon van de timestamp velden varchar(14) kunnen maken?

www.dannyhiemstra.nl


  • Bartholomew
  • Registratie: Januari 2000
  • Laatst online: 12-04 12:56
Op donderdag 10 januari 2002 16:56 schreef FireFoxx het volgende:
dus ik zou het beste gewoon van de timestamp velden varchar(14) kunnen maken?
ligt er aan hoe makkelijk je het jezelf wil maken ...

maak een timestamp field en je hieft zelf nix te inserten ... maak een datetime field en je moet zelf ff met now() een datum en tijd inserten ...

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Op donderdag 10 januari 2002 16:31 schreef Zef het volgende:
Wat voor type is die date? En verder als je met INTs werkt (en dat zou ik in dit geval doen) moet je geen apostrofs (') gebruiken.
Ik dacht dat mysql het aanraad om voor ELK type (dus ook int) ' te gebruiken.

Verwijderd

Op donderdag 10 januari 2002 18:45 schreef Nielsz het volgende:

[..]

Ik dacht dat mysql het aanraad om voor ELK type (dus ook int) ' te gebruiken.
Da's raar, door dat te doen heb ik veel problemen gehad bij het updaten van de reply counts op m'n forum (ging niet altijd goed met ' wel zonder)
Pagina: 1