MySql fehlende Timestamps erstelln

spikaner

Quereinsteiger @ php
Ich habe eine Datenbank mit 4 Feldern Time, A1, A2, A3 die Felder A1 - 3 werden täglich einmal via Cronejob befüllt und im Feld Time der Timestamp hinterlegt. Jetzt durch Serverausfallzeiten etc. Fehlen wir ein paar Timestamps für eine 24 Stunden Anzeige.

Wie kann ich einfach Timestamps hinzufügen und in die Felder A1-3 einfach 0 schreiben ohne großen Aufwand?

Ein Beispielfeld:
Time = 1307813252, A1 = 3.29, A2 = 4.46, A3 = 2.00
die Zeit also Time könnte auch vorher noch auf eine Stunde etc. gerundet werden um dann die fehlenden Tage mit 0 aufzufüllen.

Bin für jeden Tip dankbar. (Auch eine php Lösung mit langer Ladezeit wäre denkbar.)

mfg Spikaner
 
Mach ein PHP-Script mit einer Schleife
PHP:
//TODO Connect to DB

$startTime = 1307813252; //erster fehlender Timestamp
$lastTime = 1307899252; //letzter fehlender Timestamo
$step = 3600; //Interval der Datensätze n Sekunden
for($time = $startTime; $time <= $lastTime; $time = $time + $step){
  $sql = "INSERT INT my_table ....({$time},   ...  )";
  mysqli_stmt($sql);
}
 
1. Bitte in PHP verschieben !
So nun zum problem ich wollte erstmal die timestamps auf nee einheitliche Uhrzeit bringen
PHP:
<?php
$mysql_user = 'marktpreise';
$mysql_pw = '';
$mysql_host = 'localhost';
$mysql_db = 'marktpreise';

$connect    = @mysql_connect($mysql_host, $mysql_user, $mysql_pw); 
$db = mysql_select_db($mysql_db,$connect) or die ("Kann die Datenbank nicht lesen!"); 
// db sachen ende

// letzte id ermitteln
$abfrage = "SELECT * FROM mineraliean ORDER BY id DESC LIMIT 1 ";
$result = mysql_query($abfrage);
$row=mysql_fetch_array($result);
$lastid = $row['id1'];

for ($i = 1; $i < $lastid; $i++)
{
	$sql = "
	SELECT 
		Time
	FROM
		mineraliean
	WHERE
		id1 = '".$i."'
	";
	$result = mysql_query($sql);
	$row=mysql_fetch_array($result);
	$ergebnis = $row['Time'];
	echo $ergebnis."<br>";
	$datum = date("Y-d-m H:i;s", $ergebnis);
	echo $datum."<br>";
	list ($date, $time) = explode(' ',$datum, 2); 
	$date = $date." 15:00:00";
	echo $date."<br>";
	$neuzeit = strtotime($date);
	echo $neuzeit."<br>";
}
?>
nur ich bekomme jetzt Folgende Ausgabe
Code:
1307884201
2011-12-06 15:10;01
2011-12-06 15:00:00
1323180000
1307884201
2011-12-06 15:10;01
2011-12-06 15:00:00
1323180000
1307970601
2011-13-06 15:10;01
2011-13-06 15:00:00

1307970601
2011-13-06 15:10;01
2011-13-06 15:00:00

1307970601
2011-13-06 15:10;01
2011-13-06 15:00:00

1307970601
2011-13-06 15:10;01
2011-13-0
sprich mal wird richtig umgewandelt mal nicht, wo liegt jetzt da der Fehler GEFUNDEN******

mfg Spikaner
 
Zuletzt bearbeitet:
Zurück