webmaster resource
+ Webmaster Forum von Webmaster-Resource.de » Webcoding » Datenbanken (Moderator: Christian Felken)
|-+ UNIX TIMESTAMP IN DATUM UMWANDELN...
Username:
Password:

Seiten: [1]
Topic Tools  
Read 01. August 2007, 12:40:52 #0
lila

UNIX TIMESTAMP IN DATUM UMWANDELN...

Hallo....

ich möchte ein Feld Datum, dass die Einträge so abgespeichert hat: 1164213758
in einer neuen DB als datetime abspeichern 0000-00-00 00:00:00.

Habe dazu ein Skript geschrieben, das mir die Daten aus der alten DB selektiert (klappt auch)...
diese möchte ich umwandeln und in der neuen dann abspeichern....aber ich bekomme immer
nur dieses Ergebnis 0000-00-00 00:00:00. in der neuen DB.

Code:
<?php

    
//Verbindung zum Datenbankserver aufbauen 

    
$dbcnx = @mysql_connect("localhost","XXX","secret");
    if(!
$dbcnx){
    
echo("<p>Zur keine Verbindung ".
    
"zum Datenbankserver möglich.</p>");
    
exit();
    }


    
//Datenbank auswählen

    
if (! @mysql_select_db("XXX")){
    echo(
"<p>Die Datenbank steht leider nicht zur Verfuegung.</p>");
    exit();
    }
    
    
//Auslesen aus der DB:
    
$result mysql_query("SELECT feld FROM tabelle");
    if(!
$result){
    echo(
"<p>Fehler bei der Ausführung der Abfrage: ".
    
mysql_error()."</p>");
    exit();
    }
    
   
  
   
//Ausgabe
    
$row=0;
    while (
$rowErg mysql_fetch_row($result)){
    
$rowArray[$row][0]=$rowErg[0];
    

    

    
//echo ( " ". $rowErg["0"]."<br/>" ); //Test um den Inhalt des Arrays zu überprüfen
    

    
}

--------------->
Per echo bekomme ich alle Ergebnisse ausgegeben
    
    
//Verbindung zum neuen Datenbankserver 

    
$dbcnx = @mysql_connect("localhost","YYY","secret");
    if(!
$dbcnx){
    
echo("<p>Zur keine Verbindung ".
    
"zum Datenbankserver möglich.</p>");
    
exit();
    }


    
//Datenbank auswählen

    
if (! @mysql_select_db("YYY")){
    echo(
"<p>Die Datenbank steht leider nicht zur Verfuegung.</p>");
    exit();
    }

  $datum date('dmY',$rowErg["0"] );
    while (
$data mysql_fetch_array($loaddata) ) {
    
$data['datum'];
 
  mysql_query("INSERT INTO tabelle (feld) VALUES ('".$rowErg["0"]."')");
 
---------------> 
bekomme den Eintrag 0000-00-00 00:00:00 in dem Feld!  
 
?>



Was ist denn hier falsch?Bekomme auch keine Fehlermeldung...
Offline  
Read 01. August 2007, 17:01:39 #1
» тнє $υι¢ι∂є « ™

Re: UNIX TIMESTAMP IN DATUM UMWANDELN...

du kannst nicht erwarten, das du wegen jedem ach so kleinen problem von uns hilfe bekommst!

verwende die SUFU, Google etc...



mfg epix
« Letzte Änderung: 01. August 2007, 17:03:23 von EpiX »

Offline  
Read 01. August 2007, 21:31:54 #2
sf-design

Re: UNIX TIMESTAMP IN DATUM UMWANDELN...

Ich habe mir zwar jetzt nicht den ganzen Quellcode genau angesehen, aber der Fehler liegt meines Erachtens auf der Hand.

Du hast einen Unix-Timestamp, und wandelst ihn mit der date()-Funktion um, aber nicht vollständig und auch nicht so, wie es der MySQL "Feldtyp" DATETIME benötigt.

Ein kleines Beispiel:
Unser Datum ist der 01.08.2007 - 22:00 Uhr.
Mit deiner Umwandlung würdest du nun lediglich "01082007" in die Spalte eintragen, da das aber nicht dem Format "0000-00-00 00:00:00" der MySQL Tabelle entspricht, passiert überhaupt nichts, die Tabelle bleibt einfach unverändert.
Deshalb musst du deine Umwandlung einfach so abändern, dass es stimmt, dann müsste es eigentlich gehen:

Code:
date('Y-m-d H:i:s',$timestamp);


Offline  
Seiten: [1]
Gehe zu: