Good day!
I created a payroll system and now I have a problem in Time Field from .xml the time is 08:00:00 AM when I used my php code for uploading the .xml file it display : 1899-12-31T08:00:00.000, to remove the : 1899-12-31T and .000
this is my file in .xml
time: 8:00:00 AM
6:00:00 PM
and it save in database as
time : 08:00:00
18:00:00
i used the code substr
I used this code for importing .xml file:
<?php
$data = array();
$con = mysql_connect("localhost", "root","");
if (!$con) {
die(mysql_error());
}
$db = mysql_select_db("db_upload", $con);
if (!$db) {
die(mysql_error());
}
$sql = "select * from employee";
$result = mysql_query($sql, $con);
if (!$result) {
die(mysql_error());
}
$total = mysql_num_rows($result);
if ($total > 0) {
$sql = "delete from employee";
$result = mysql_query($sql, $con);
if (!$result) {
die(mysql_error());
}
}
function add_employee($emp, $employee, $last, $mi, $date, $time)
{
global $data;
$con = mysql_connect("localhost", "root","");
if (!$con){ die(mysql_error());}
$db = mysql_select_db("db_upload", $con);
if (!$db) {
die(mysql_error());
}
$emp = $emp;
$employee = $employee;
$last = $last;
$mi = $mi;
$date = substr($date,0,-13);
$time = substr($time,11,-4);
$date = $date;
$time = $time;
$sql = "INSERT INTO employee (EMP_NO, Name, last, mi, date, time) VALUES ('$emp', '$employee', '$last', '$mi', '$date', '$time')";
mysql_query($sql, $con);
$data []= array('EMP_NO' => $emp, 'Name' => $employee, 'last' => $last, 'mi' => $mi, 'date' => $date, 'time' => $time);
}
if ( $_FILES['file']['tmp_name'] )
{
$dom = DOMDocument::load( $_FILES['file']['tmp_name'] );
$rows = $dom->getElementsByTagName( 'Row' );
global $last_row;
$last_row = false;
$first_row = true;
foreach ($rows as $row)
{
if ( !$first_row )
{
$emp = "";
$employee = "";
$last = "";
$mi = "";
$date = "";
$time = "";
$index = 1;
$cells = $row->getElementsByTagName( 'Cell' );
foreach( $cells as $cell )
{
$ind = $cell->getAttribute( 'Index' );
if ( $ind != null ) $index = $ind;
if ( $index == 1 ) $emp = $cell->nodeValue;
if ( $index == 2 ) $employee = $cell->nodeValue;
if ( $index == 3 ) $last = $cell->nodeValue;
if ( $index == 4 ) $mi = $cell->nodeValue;
if ( $index == 5 ) $date = $cell->nodeValue;
if ( $index == 6 ) $time = $cell->nodeValue;
$index += 1;
}
if ($emp=='' and $employee=='' and $last=='' and $mi=='' and $date=='' and $time=='') {
$last_row = true;
}
else {
add_employee($emp, $employee, $last, $mi, $date, $time);
}
}
if ($last_row==true) {
$first_row = true;
}
else {
$first_row = false;
}
}
}
?>
<html>
<body>
<table>
<tr>
<th>Employee Attendance</th>
</tr>
<?php foreach( $data as $row ) { ?>
<tr>
<td><?php echo( $row['EMP_NO'] ); ?></td>
<td><?php echo( $row['Name'] ); ?></td>
<td><?php echo( $row['last'] ); ?></td>
<td><?php echo( $row['mi'] ); ?></td>
<td><?php echo( $row['date'] ); ?></td>
<td><?php echo( $row['time'] ); ?></td>
</tr>
<?php } ?>
</table>
</body>
</html>
and the data save in time field is : 08:00:00 the AM was not display and it is 24 hours.
and now I tried to SUM the time field in database using this code:
SELECT SEC_TO_TIME( SUM( TIME_TO_SEC( 'time' ) ) ) AS TOTAL_TIME
FROM employee
WHERE EMP_NO = '100063'
and the output is 00:00:00
Thank you so much…