将数据正确显示到数组中。
现在要推送到数据库(phpmyadmin>出勤)。
任何想法如何将数据推入数据库而不进行重复。(忽略重复输入数据库。
代码
foreach($output_array as $uid => $data)
{
echo
'
<tr>
<td>'.$uid.'</td>
<td>'.(isset($data["name"]) && !empty($data["name"]) ? $data["name"] : "N/A").'</td>
<td>'.(isset($data['Check In']) && !empty($data['Check In']) ? $data['Check In'] : "N/A").'</td>
<td>'.(isset($data["checkout"]) && !empty($data["checkout"]) ? $data["checkout"] : "N/A").'</td>
</tr>
';
}
结果
-----------------------------
| Name | TimeIn | TimeOut |
-----------------------------
| John | 2:00 | 5:00 |
| Kings | 1:00 | 3:00 |
-----------------------------
数据库列
id | Name | Time
Php
$datapush = json_encode($output_array);
$sql = "INSERT INTO attendance (id, name, time) VALUES ('$datapush')";
答案 0 :(得分:0)
MySql仅理解SQL查询,而MySql不支持直接插入php数组 因此,将php数组转换为MySql sql语句,但一次只能插入一行。
在此代码中,您的$ output_array可能是
Array
(
[101] => Array
(
[name] => John
[Check In] => 2.00
[checkout] => 5.00
)
[102] => Array
(
[name] => Kings
[Check In] => 1.00
[checkout] => 3.00
)
[103] => Array
(
[name] => Manick
[Check In] => 3.30
[checkout] => 4.40
)
[104] => Array
(
[name] => John
[Check In] => 1.50
[checkout] => 3.30
)
)
它具有子数组值。重复检查过程只能通过编写手动编码来实现,而不能使用“ in_array()”,因为 “ in_array()”不检查子数组中的重复值。
尝试此代码。
$temp_array = [];
foreach($output_array as $uid => $data)
{
echo
'
<tr>
<td>'.$uid.'</td>
<td>'.(isset($data["name"]) && !empty($data["name"]) ? $data["name"] : "N/A").'</td>
<td>'.(isset($data['Check In']) && !empty($data['Check In']) ? $data['Check In'] : "N/A").'</td>
<td>'.(isset($data["checkout"]) && !empty($data["checkout"]) ? $data["checkout"] : "N/A").'</td>
</tr>
';
if (!check_duplicate($data['name'], $temp_array))
{
$array_push = ['id' => $uid, 'name' => $data['name'], 'Time' => $data['Check In']];
$sql = "INSERT INTO attendance (id, name, time) VALUES ('".implode("','",$array_push)."')";
// Execute Sql Query
mysql_query($sql);
// Store Array values in Temporary Array for checking duplicates
array_push($temp_array, $array_push);
}
}
function check_duplicate($key, $arr)
{
foreach($arr as $arr_1)
{
if(in_array($key, $arr_1))
return TRUE;
}
return FALSE;
}
此示例检查“名称”是否具有重复值,并将“签入”时间值插入“时间”字段值