Ja das Auslesen und anzeigen geht.
Aber wieso geht auf einmal das eintragen des Datums in Datenbank nicht mehr?
Ja das Auslesen und anzeigen geht.
Aber wieso geht auf einmal das eintragen des Datums in Datenbank nicht mehr?
Ich habe jetzt ein File gemacht mit der Abfrage und Dein Standarttest eingefügt.
In einer Schleife habe ich folgendes erhalten:
-----
Eintrag aus DB:2016-04-30
strtotime: 1461967200
date: 30.04.2016
-----
Eintrag aus DB:2016-05-01
strtotime: 1462053600
date: 01.05.2016
Wenn ich Daten in die DB schreiben möchte funktioniert das nicht.
Hallo
Kann es sein, dass nach dem wechsel auf PHP5.5 die Datumformatierung nict mehr läuft?
Ich habe ein Datum aus der Datenbank,
[code=php]$row_podidate['podizei_datum']=date("d.m.Y", strtotime( $row_podidate["podizei_datum"]));
Aber es wir mir nicht das Datum angezeigt, welechs in der Datenbank steht, respektive es wird mir nicht dasrichtig Datum, welches ich eintrage, in die Datenbank geschrieben.
Das Feld in der Datenbank hat den Typ: 'date'
Könnte das mit dem wechsel auf PHP5.5 zusammenhängen?
Oder mit meinem Editor Dreamweaver?
Ja die erste Zahl finde ich auch komisch. Ist aber so.
Wenn ich es ungerundet mache, stimmt das Ergebnis.
Die PHP-Version ist jetzt auf dem neusten stand. (PHP 5.5)
Jetzt erhalte ich auch einen Wert ohne Fehlermeldung
Allerdings nicht den richtigen.
Wenn ich bei "von"-> 10:00:00 habe und bei "bis"-> 16:00:00, ergibt mir die Rechnung ein Resultat von 07:00
Wenn ich bei "von"-> 15:00:00 habe und bei "bis"-> 16:15:00, ergibt mir die Rechnung ein Resultat von 06:15 was ja stimmen würde.
Allerdings bei "von"-> 10:00:00 und "bis"-> 16:20:00 erhalte ich ein Resultat von 06:30.
Woher kommen diese Zahlen?
Ich habe dem Support eine E-Mail geschrieben, mit der Bitte, meine PHP-Version zu updaten.
Wenn es soweit ist, werde ich es noch einmal versuchen und gegebenenfalls wieder melden.
Vielen Dank
Gruss
Philipp
In der Datenbank steht z.B. von 10:00:00 bis 15:00:00 die Felder haben den Typ time.
Als erstes hab ich glaub ein Durcheinander was die Code angeht.
Ich habe glaub den Überblick etwas verloren welche Code-Schnippsel ich zusammen verwenden muss.
Wie ich das verstanden habe, möchtest du mit:
echo '<pre>';
while ($row = mysql_fetch_assoc($db_daten)){
$rowName = $row['podizei_idpodi'];
echo '<h2>Rowname: '.$rowName.'</h2>';
echo '-----------------<br>';
echo '<b>print_r( '.$rowName.' ):</b><br>';
print_r( $row );
echo '-----------------<br>';
echo '<b>var_dump( '.$rowName.'["stamp"] )</b>:<br>';
var_dump( $row['stamp'] );
echo '-----------------<br>';
echo '<b>echo( '.$rowName.'["stamp"] ):</b><br>';
echo( $row['stamp'] );
echo '<br>-----------------<br>';
echo '<b>date( '.$rowName.'["stamp"] ):</b><br>';
echo date( $row['stamp'] );
echo '<br>-----------------<br>';
echo '<b>date("H:i:s", strtotime( '.$rowName.'["stamp"] )):</b><br>';
echo date("H:i:s", strtotime( $row['stamp'] ));
echo '<br>-----------------<br>';
}
echo '</pre>';
Alles anzeigen
ein Format ermitteln, welches geeignet ist für das rechnen.
time_diff.phpin ein File kopiert und mit diesem Namen auf den Server geladen.
Und was hier passiert, ist mir auch nicht ganz klar:
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){// '$stmt->fetch(PDO::FETCH_ASSOC)' durch entsprechende mysqli Funktion ersetzen
//Daten Weiterverarbeiten
$times = array();
while ($row = mysql_fetch_assoc($pd_date['result']))
{
$times[][0] = $row['podizei_von'];//Von ist ein Zeitstempel und steht immer in [0]
$times[][1] = $row['podizei_bis'];//Bis ist ein Zeitstempel und steht immer in [1]
}
foreach ($times as $key => $time_array)
{
// 'Unterschied: 09:46'
echo " " time_diff($time_array[0], $time_array[1])['t'];
}
Alles anzeigen
Stimmt auf dem Server läuft noch die PHP-Version 5.2
Bis vor ^kurzem dachte ich Licht am ende des Tunnels zu sehen, aber jetzt versteh ich wieder nichts mehr.
Gruss
Phips_CH
Sorry.
Parse error: syntax error, unexpected '[', expecting ',' or ';' in /.../.../htdocs/test.php on line 73
Hallo wolf
erst mal Happy New Year und vielen Dank für Deine Unterstützung
Irgendwie scheint das bei mir nicht zu funktionieren.
Da es für mich nicht ganz nachvollziehbar ist, was ich mache, resp. was ich machen soll, kann ich auch nur schwer sagen, was nicht funktioniert.
Gruss
Philipp
$row scheint leer zu sein.
Aber wieso?
//Verbinden
mysql_connect($db['server'], $db['username'], $db['password']) or die('Datenbankverbindung fehlgeschlagen: '.mysql_error());
//DB auswählen
mysql_select_db($db['datenbank']) or die('Datenbankauswahl fehlgeschlagen: '.mysql_error());
//PD-ID Abfrage
//SQL schreiben
$pd_id['sql'] = "SELECT * FROM `saer_postendienst` WHERE `podi_ID` = '453';";
//SQL ausführen
$pd_id['result'] = mysql_query($pd_id['sql']) or die('Datenbankquery fehlgeschlagen: '.mysql_error());
$pd_id['rows'] = mysql_num_rows($pd_id['result']);
//wenn erfolgreich
if ($pd_id['rows'] > 0) {
$pd_id['array'] = mysql_fetch_assoc($pd_id['result']);
if ( !empty( $pd_id['array']['podi_ID'] )) {
$serach_id = $pd_id['array']['podi_ID'];
}
else{
die('Keine ID aus DB bekommen. '.$pd_id['sql']);
}
}
else{
die('Keine Daten aus DB bekommen. '.$pd_id['sql']);
}
//PD-DATE Abfrage
//Such-id aus PD_ID Abfrage
$id = $serach_id;
//SQL schreiben
$pd_date['sql'] = "SELECT * FROM `saer_podidate` WHERE `podizei_idpodi` = '".$id."';";
//SQL ausführen
$pd_date['result'] = mysql_query($pd_date['sql']) or die('Datenbankquery fehlgeschlagen: '.mysql_error());
//Result Zeilen Zählen
$pd_date['rows'] = mysql_num_rows($pd_date['result']);
//Wenn leer, abbrechen
if ($pd_date['rows'] < 1) {
die('Keine Daten aus DB bekommen. '.$pd_date['sql']);
}
//Daten Weiterverarbeiten
$dates = array();
while ($row = mysql_fetch_assoc($pd_date['result'])) {
$dates[] = date("H:i", strtotime( $row['podizei_bis'] ));
}
foreach ($dates as $key => $value) {
echo "DATE #".$key.' - '.$value.'<br>';
}
//DEBUG
$db_daten = $pd_date['result'];
echo '<pre>';
while ($row = mysql_fetch_assoc($db_daten)){
$rowName = $row['podizei_idpodi'];
echo '<h2>Rowname: '.$rowName.'</h2>';
echo '-----------------<br>';
echo '<b>print_r( '.$rowName.' ):</b><br>';
print_r( $row );
echo '-----------------<br>';
echo '<b>var_dump( '.$rowName.'["stamp"] )</b>:<br>';
var_dump( $row['stamp'] );
echo '-----------------<br>';
echo '<b>echo( '.$rowName.'["stamp"] ):</b><br>';
echo( $row['stamp'] );
echo '<br>-----------------<br>';
echo '<b>date( '.$rowName.'["stamp"] ):</b><br>';
echo date( $row['stamp'] );
echo '<br>-----------------<br>';
echo '<b>date("H:i:s", strtotime( '.$rowName.'["stamp"] )):</b><br>';
echo date("H:i:s", strtotime( $row['stamp'] ));
echo '<br>-----------------<br>';
}
echo '</pre>'
?>
Alles anzeigen
Ich sehe als erstes die Zeiten die im Feld podizei_von stehen. Danach kommt ein Fehler aus der Zeile 2 (bei mir ist es die Zeile 115).
DATE #0 - 15:00
DATE #1 - 10:00
DATE #2 - 00:04
DATE #3 - 00:00
DATE #4 - 15:00
DATE #5 - 12:00
Fatal error: Call to a member function fetch() on a non-object in /.../.../htdocs/test.php on line 115
Ja ich habe die Eingaben als Time in der DB.
Ich währe schon mal froh, wenn ich 06:00 - "Time aus DB-Feld" ein vernünftiges Resultat erhalten würde.
Irgendwie klappt das bei mir nicht.
Ich habe folgende Ausgangslage.
In einer Datenbank habe ich Uhrzeiten, (z.B. 5:30Uhr und 15:00Uhr)
Die Uhrzeiten möchte ich voneinander abzählen.
Für eine Kostenberechnung (Arbeitseinsatz) habe ich von 06:00-22:00Uhr andere Tarife als 22:00-06:00Uhr.
Ich habe nun versucht die Zeiten so aufzuteilen, dass ich zuerst die Zeiten vor 06:00 in eine Variable schreib, dann die Zeit tagsüber in eine Variable und die Zeit nach 22:00Uhr in eine weitere.
Da muss ich allerdings zuerst schauen ist die Zeit kleiner als 06:00Uhr, resp. grösser als 22:00Uhr um damit rechnen zu können.
Am Schluss möchte ich diese Zeit noch auf 15min genau runden.
Ist das ganze so umständlich, oder gibt es einen einfacheren Weg?
Gruss
Philipp
Ich habe es nun mal so versucht.
<table width="200" border="0">
<tr>
<td><form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1">
<?php do {
?>
<tr valign="baseline">
<td align="right" nowrap="nowrap"><?php echo $row_podidate['podizei_datum']; ?></td>
<td nowrap="nowrap" align="left"><?php echo $row_podidate['podizei_von']; ?></td>
<td nowrap="nowrap" align="left"><?php echo $row_podidate['podizei_bis']; ?></td>
<td nowrap="nowrap" align="center"><input type="text" name="podizei_samariter" value="<?php echo htmlentities($row_risikobeurteilung['ribe_samariter']); ?>" size="10" /></td>
<td nowrap="nowrap" align="center"><input type="text" name="podizei_medpers" value="<?php echo htmlentities($row_risikobeurteilung['ribe_medpers']); ?>" size="10" /></td>
<td nowrap="nowrap" align="left"><?php echo $row_podidate['podizei_bemerkung']; ?></td>
</tr>
<?php
$MeinArray[] = array(
'pers1' => $_POST['podizei_samariter'],
'pers2' => $_POST['podizei_medpers']
);
}while($row_podidate = mysql_fetch_assoc($podidate)); ?>
</table>
<input type="submit" value="Datensatz aktualisieren" />
</form></td>
</tr>
$MeinArray[] = array(
'pers1' => $_POST['podizei_samariter_$i'],
'pers2' => $_POST['podizei_medpers_$i']
);
$i++;
}while($row_podidate = mysql_fetch_assoc($podidate)); ?>
</table>
Alles anzeigen
Jetzt habe ich allerdings immer den letzten Wert aus POST['podizei_samariter_$i'] und POST['podizei_medpers_$i'] im Array.
ich möchte aber dem Feldentsprechend die Daten im Array und danach auch in der DB ändern.
Die Zeile foreach($Array as $key => $value) ergibt mir den Fehler, Invalid argument supplied for foreach()
Ich möchte ja das Array, innerhalb der Schleife, füllen.
Somit habe ich die Ausgabe innerhalb der foreach-Schleife ausgegeben(zur Kontrolle), um es zugleich im Array zu speichern.
HTML-Seminar.de - mit Videos zum schnellen Lernen, wie man eine Website selbst erstellt.