You are not logged in.

  • Login

1

Friday, November 11th 2011, 5:01pm

timestamp umwandeln

PHP Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$timestamp = time();
 
$conn_id = mysql_connect ("localhost", "user", "password");
 
$ergebnis = mysql_db_query ("db-name", "select news_extended,news_datestamp from fusions2511_news", $conn_id);
 
echo "Folgende News sind enthalten:<br>\n";
 
for ($i = 0; $i < mysql_num_rows ($ergebnis); $i++)
{
echo mysql_result ($ergebnis, $i, "news_extended") . "<br>\n";
}
for ($i = 0; $i < mysql_num_rows ($ergebnis); $i++)
{
echo mysql_result ($ergebnis, $i, "news_datestamp") . "<br>\n";
}
mysql_close ($conn_id);
 
?>


Inhalt der news_extended und news_datestamp Spalte werden ausgegeben.
Der Inhalt der news_datestamp ist ja jeweils der timestamp, wie kriege ich es jetzt noch hin den timestamp in ein Datum und eine Uhrzeit umzuwandeln, also wie muss ich es in den Code implementieren?

Danke schonmal.

2

Friday, November 11th 2011, 7:30pm

Sofern es sich um einen PHP-Timestamp handelt, kannst du die PHP-date()-Funktion nutzen:

PHP Quellcode

1
echo date('d.m.Y, H:i', $timestamp);

... würde ausgeben: 11.11.2011, 19:30

3

Friday, November 11th 2011, 11:18pm

Sofern es sich um einen PHP-Timestamp handelt, kannst du die PHP-date()-Funktion nutzen:

PHP Quellcode

1
echo date('d.m.Y, H:i', $timestamp);

... würde ausgeben: 11.11.2011, 19:30


Ich muss es allerdings noch hinbekommen, dass der timestamp, der eben in der Spalte steht in der Variable $timestamp gespeichert wird. Wie krieg ich das nun hin?

4

Saturday, November 12th 2011, 1:27pm

zugegeben, ich bin kein PHP-Gott, aber die Lösung, die MySQL-Abfrage per for-Schleife auszugeben, halte ich nicht für besonders sinnvoll. Die gängigste Variante ist eigentlich per while-Schleife

PHP Quellcode

1
2
3
4
while ($row = mysql_fetch_assoc($ergebnis)) {
echo $row['news_datestamp']; // nur der timestamp
echo date("j.m.Y",$row['news_datestamp']); //timestamp sauber formatiert
}

5

Saturday, November 12th 2011, 4:04pm

Ich würde gleich mit einem Objekt arbeiten, zum Beispiel:

PHP Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
  // set default values
  define('SQL_SERVER', 'XXX');
  define('SQL_SERVER_USER', 'XXX');
  define('SQL_SERVER_USER_PASSWORD', 'XXX');
  define('SQL_SERVER_DATABASE', 'XXX');
  define('SQL_SERVER_DATABASE_TABLE', 'XXX');
 
  // connect to sql server
  $connectionID = mysql_connect(SQL_SERVER, SQL_SERVER_USER, SQL_SERVER_USER_PASSWORD) or die('Verbindungsfehler: ' . mysql_error());
 
  // change database
  mysql_select_db(SQL_SERVER_DATABASE, $connectionID) or die('Datenbank nicht gewechselt: ' . mysql_error());
 
  // set sql statement
  $sql = "SELECT  news_extended, news_datestamp
	FROM  ".SQL_SERVER_DATABASE_TABLE;
 
  // select news
  $result = mysql_query($sql, $connectionID) or die('Statement nicht ausgefuehrt: ' . mysql_error());
 
  // check for entries
  if (mysql_num_rows($result) == 0) die('Keine News gefunden');
 
  // fetch result
  while ($object = mysql_fetch_object($result)) {
	echo $object->news_extended;
	echo date('d.m.Y, H:i', $object->news_datestamp);
  }
 
  // close connection
  mysql_close($connectionID);
?>


Die entsprechenden Angaben (SQL_SERVER, ...) müssen den Umständen angepasst werden.

6

Saturday, November 12th 2011, 7:42pm

@Tim: Danke es funktioniert bis hierhin, nun will ich eine Sortierung nach dem timestamp.

PHP Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
  // set default values
  define('SQL_SERVER', 'XXX');
  define('SQL_SERVER_USER', 'XXX');
  define('SQL_SERVER_USER_PASSWORD', 'XXX');
  define('SQL_SERVER_DATABASE', 'XXX');
  define('SQL_SERVER_DATABASE_TABLE', 'XXX');
 
  // connect to sql server
  $connectionID = mysql_connect(SQL_SERVER, SQL_SERVER_USER, SQL_SERVER_USER_PASSWORD) or die('Verbindungsfehler: ' . mysql_error());
 
  // change database
  mysql_select_db(SQL_SERVER_DATABASE, $connectionID) or die('Datenbank nicht gewechselt: ' . mysql_error());
 
  // set sql statement
  $sql = "SELECT  news_datestamp, news_extended
	FROM  .SQL_SERVER_DATABASE_TABLE. ORDER BY news_datestamp DESC";
 
  // select news
  $result = mysql_query($sql, $connectionID) or die('Statement nicht ausgefuehrt: ' . mysql_error());
 
  // check for entries
  if (mysql_num_rows($result) == 0) die('Keine News gefunden');
 
  // fetch result
  while ($object = mysql_fetch_object($result)) {
	echo date('d.m.Y, H:i', $object->news_datestamp);
	echo $object->news_extended;
  }
 
 
  // close connection
  mysql_close($connectionID);
?>


PHP Quellcode

1
2
$sql = "SELECT  news_datestamp, news_extended
	FROM  .SQL_SERVER_DATABASE_TABLE. ORDER BY news_datestamp DESC";


Das wird irgendwie nicht erkannt, mir wird eine Fehlermeldung angezeigt:

Statement nicht ausgefuehrt: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '. ORDER BY news_datestamp DESC' at line 2

Was ist daran falsch?

EDIT: Also wenn ich fusions2511_news statt .SQL_SERVER_DATABASE_TABLE. benutze funktioniert es, wie kriege ich es denn hin, dass es mit dem .SQL_SERVER_DATABASE_TABLE. ORDER BY funktioniert?

7

Saturday, November 12th 2011, 7:55pm

Der Code muss so heißen:


$sql = "SELECT news_datestamp, news_extended
FROM ".SQL_SERVER_DATABASE_TABLE." ORDER BY news_datestamp DESC";


(die Konstante ist bei dir als String in dem String, die Tabelle wäre also "SQL_SERVER_DATABASE_TABLE" und nicht der Wert der Konstante.

Bei MySQL Fehlern ist es meistens schlau, direkt den Query mit anzuschauen, bei dem die Anfrage fehlschlägt. Also wirklich den Query, den die Datenbank abarbeitet. Also in dem die() einfach nach mysql_error() noch $sql ausgeben lassen.

This post has been edited 1 times, last edit by "Jan Thurau" (Nov 12th 2011, 8:02pm)


Similar threads

Social bookmarks