php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.05.2005, 17:06  
Gast
 
Beiträge: n/a
Standard Timestamp in DB eintragen

Hi leuts

Ich möchte gerne einen Timestamp in die meine MySQL DB eintragen. Nur wenn ich dass so mache gehts nicht:

PHP-Code:
<?php
     $timestamp 
time();
     
$time 60 10;
     
$ttime $timestamp $time;
     
$hunger $row->hunger +1;
     
$eintrag "UPDATE `mypet_katzen` SET `hunger` = '$hunger', `time`= '$ttime' WHERE `id` = '$pet_id'";
     
$eintragen mysql_query($eintrag);
?>
Dann wird gar nichts vom Timestamp eingetragen. Nur weiss ich nicht was ich falsch mache, bzw welche einstellungen mus ich treffen? Ich habe das Db Feld momentan auf TIMESTAMP und dann die Damit verbundenen Standardeinstellungen.

Was muss ich nun beim Update abändern so dass es geht?

LG
Garnele
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 14.05.2005, 17:35  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

1)
mysql error
man sollte in seinen Scripten immer mysql_error() verwenden, in etwa so:
PHP-Code:
$sql "SELECT feld1,feld2 FROM table WHERE id=5";
$result mysql_query($sql) or die(mysql_error().'
Query: '
.$sql); 


2)
wie ist die struktur deiner datenbank ?
was für datentypen haben die spalten ?
robo47 ist offline  
Alt 14.05.2005, 17:46  
Gast
 
Beiträge: n/a
Standard

Hi

Das was du hier siehst ist natürlich nur ein Teil, mysql_error() ist eingebaut.

Zu 2:



LG
Garnele

P.s. Danke
 
Alt 14.05.2005, 17:53  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Garnele
Zu 2:
Wie wäre es, wenn Du ein
Code:
CREATE TABLE tabelle (definition)
bzw. die Ausgabe von
Code:
SHOW CREATE TABLE tabelle
liefern würdest, anstazz das Forum mit diversen Bildchens vollzumüllen?
 
Alt 14.05.2005, 17:54  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

nimm INT als datentyp nicht TIMESTAMP

http://dev.mysql.com/doc/mysql/en/da...-overview.html
Zitat:
TIMESTAMP[(M)]

A timestamp. The range is '1970-01-01 00:00:00' to partway through the year 2037.

A TIMESTAMP column is useful for recording the date and time of an INSERT or UPDATE operation. The first TIMESTAMP column in a table is automatically set to the date and time of the most recent operation if you don't assign it a value yourself. You can also set any TIMESTAMP column to the current date and time by assigning it a NULL value.

From MySQL 4.1 on, TIMESTAMP is returned as a string with the format 'YYYY-MM-DD HH:MM:SS'. If you want to obtain the value as a number, you should add +0 to the timestamp column. Different timestamp display widths are not supported.

In MySQL 4.0 and earlier, TIMESTAMP values are displayed in YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD, or YYMMDD format, depending on whether M is 14 (or missing), 12, 8, or 6, but allows you to assign values to TIMESTAMP columns using either strings or numbers. The M argument affects only how a TIMESTAMP column is displayed, not storage. Its values always are stored using four bytes each. From MySQL 4.0.12, the --new option can be used to make the server behave as in MySQL 4.1.

Note that TIMESTAMP(M) columns where M is 8 or 14 are reported to be numbers, whereas other TIMESTAMP(M) columns are reported to be strings. This is just to ensure that you can reliably dump and restore the table with these types.
robo47 ist offline  
Alt 14.05.2005, 17:56  
Gast
 
Beiträge: n/a
Standard

Hi

Sorry, ich dachte das ginge mit dem Bild auch. Also hier die Create table:

Code:
CREATE TABLE `mypet_katzen` (
  `id` int(5) unsigned NOT NULL auto_increment,
  `name` varchar(100) NOT NULL default '',
  `herr_id` varchar(5) NOT NULL default '',
  `hunger` char(2) NOT NULL default '',
  `krankheiten` char(1) default NULL,
  `wohlfühl` char(2) NOT NULL default '',
  `freunde` varchar(8) NOT NULL default '',
  `pfund` char(1) default NULL,
  `time` timestamp(14) NOT NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=16 ;
LG
Garnele

edit: Ich habe die Idee mit dem INT ausprobier: es ging nicht
 
Alt 14.05.2005, 18:03  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Garnele
Sorry, ich dachte das ginge mit dem Bild auch.
Bilder kann man schlecht ins SQL Fenster des PhpMyAdmin importieren.

Frage: wenn Du Datum+Zeit in der DB speichern willst, warum nutzt Du dann nicht den Spaltentyp DATETIME und erledigst die SQL Abfrage mittels der hervorrand geeigneten Datum- und Zeitfunktionen von MySQL?

http://dev.mysql.com/doc/mysql/de/da...functions.html

Verwendest Du die nicht, solltest Du INT verwenden, da der MySQL TIMESTAMP nicht mit dem UNIX Timestamp von PHP kompatibel ist.
 
Alt 14.05.2005, 18:11  
Gast
 
Beiträge: n/a
Standard

Hi

Also ich weiss nicht ob du weisst dass das ganze am ende ein Browsergame ergibt. Da ich nun den Timestmp darin speichern will, heisst dass ich in ihm angebe wie lange der User "blockiert" ist. Deshalb eignet sich die mysql Datumsfunktion nicht. Zu INT: Ich habe es ausprobiert aber leider geschieht nichts, das heisst der Timestamp wird nicht eingetragen. Woran könnte das liegen?

LG
Garnele

P.S. Das Update script findet ihr im ersten posting

edit: Ah jetzt gehts
 
Alt 14.05.2005, 18:27  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Garnele
Also ich weiss nicht ob du weisst dass das ganze am ende ein Browsergame ergibt.
Das ist unerheblich.

Zitat:
Da ich nun den Timestmp darin speichern will, heisst dass ich in ihm angebe wie lange der User "blockiert" ist. Deshalb eignet sich die mysql Datumsfunktion nicht.
Das nun wieder ist falsch. Wahrscheinlich hast Du Dir das MySQL Handbuch (mein Link) nicht durchgelesen.

Ungetestet!
PHP-Code:
<?php
$eintrag 
"UPDATE `mypet_katzen` SET `hunger` = '$hunger', `time`= DATE_ADD(NOW(), INTERVAL 10 MINUTE)  WHERE `id` = '$pet_id'"
mysql_query($eintrag) OR die(mysql_error() ); 
?>
"So oder so ähnlich."
Voraussetzung ist, daß `time` vom Typ DATETIME ist.

Beachte aber, daß time ein reserviertes Wort und somit als Bezeichner höchst ungeeignet ist.

Zitat:
Zu INT: Ich habe es ausprobiert aber leider geschieht nichts, das heisst der Timestamp wird nicht eingetragen. Woran könnte das liegen?
Normalerweise klappert das, wenn die Spalte vom Type INT ist.
Zitat:
edit: Ah jetzt gehts
Aha. Ich empfehle Dir aber trotzdem obiges Beispiel. Wenn Du ein DBMS benutzt, dann nutze auch das, was es kann. Oder schiebst Du Dein Auto auch nur so durch die Stadt, weil Dir das Starten und Fahren zu unbequem ist?
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
SQL Timestamp (Sekunden stören) Reen_Sc Datenbanken 5 10.07.2008 16:22
Timestamp problem phrain PHP Tipps 2008 2 04.04.2008 09:41
nur "jahr" aus timestamp abfragen lindner Datenbanken 3 29.03.2007 14:55
[Erledigt] Problem mit Datumsformat und Timestamp Datenbanken 3 09.02.2006 23:39
Timestamp und IF Bedingung in einer Abfrage Datenbanken 1 20.01.2006 08:41
Pear: Timestamp wird nicht in DB geschrieben HStev PHP Tipps 2007 11 29.11.2005 19:12
timestamp in mysql Aris Sung PHP-Fortgeschrittene 9 22.11.2005 17:54
timestamp -> x Tage zurück Unbekanntes_Pferd PHP Tipps 2005-2 1 11.10.2005 14:23
mit mktime wird der Timestamp nicht richtig erzeugt PHP Tipps 2005-2 2 09.10.2005 20:57
Datein in die DB eintragen PHP Tipps 2005 2 01.06.2005 19:54
timestamp heute PHP Tipps 2005 10 18.05.2005 16:01
Problem mit Bildern, die in eine DB eintragen werden sollen! PHP Tipps 2005 6 05.03.2005 17:26
Problem: Sortierung von Statistiken nach Timestamp pixelcut PHP-Fortgeschrittene 2 02.03.2005 14:51
Datum aus Datenbank (TIMESTAMP) erzeugen PHP Tipps 2005 3 13.02.2005 01:19
timestamp PHP-Fortgeschrittene 4 26.08.2004 19:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql timestamp eintragen, timestamp in mysql eintragen, php timestamp in mysql eintragen, timestamp in datenbank eintragen, php mysql timestamp eintragen, mysql unix timestamp eintragen, datenbank timestamp wird falsch eingetragen, mysql int update set unix timestamp, timestamp in mysql db eintragen, mysql php timestamp eintragen, definition vo timestamp unter php, php integer als timestamp wird nich in db gespeichert, php aktueller timestamp mssql kompatibel, sql timestamp in datenbank eintragen, unix-timestamp php sql eintragen, datum als timestamp in db eintragen, mysql timestamp lässt sich nicht eintragen, php timestamp eintragen, timestamp in mysql eintragen php, php mysql timestamp in db eintragen

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:43 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.