Я пытаюсь вставить некоторые записи о посещаемости в БД со страницы PHP, и в это время во время выполнения INSERT-запрос вставляет данные в мою базу данных дважды, и я не могу понять причину.
Вот мой код:
<?php
error_reporting(E_ALL & ~E_NOTICE);
session_start();
$con = mysqli_connect('localhost','root','');
mysqli_select_db($con,'att_management');
if ($con)
{
$sql = "SELECT * FROM temp;";
if ($res = mysqli_query($con,$sql))
{
$rows = mysqli_num_rows($res);
if ($rows>0)
{
$att=array();
$fid=array();
$sid=array();
$i=0;
while($row=mysqli_fetch_assoc($res))
{
$att[$i]=$row['Attendance'];
$sid[$i]=$row['SID'];
$fid[$i]=$row['SFID'];
echo $att[$i];
echo "<br>";
echo $fid[$i];
echo "<br>";
echo $sid[$i];
echo "<br>";
$i=$i+1;
}
for ($i=0; $i < $rows; $i++)
{
$sql="INSERT INTO satmstr SET SID=(SELECT SID FROM stdinfo WHERE SID=$sid[$i]),SFID=$fid[$i],Attendance='$att[$i];'";
if ($res=mysqli_query($con,$sql))
{
echo "DONE xD<br>";
}
else
{
echo "ERR:: MAIN RES ERR"."<br>";
}
}
}
else
{
echo "ERR:: EMPTY_TABLE";
}
}
else
{
echo "ERR: RES_ERR";
}
}
else
{
echo "Connection Err";
}
?>
В базе данных есть три таблицы stdinfo, в ней есть столбцы SID и SFID, Другая таблица - это temp, которая предназначена для временного посещения, и есть 3 столбца для SID, SFID и Attendance (время присутствия). Другая таблица - это satmstr, в которую я хочу вставить из temp. У satmstr есть все те же столбцы, что и у таблицы temp.
OUTPUT:
DONE xD
DONE xD
DONE xD
и в БАЗЕ ДАННЫХ сначала вставляются две записи из temp, а затем снова вставляются две записи:
SID | SFID |Attendance
1 | 1 |2020-04-15 16:49:34
2 | 2 |2020-04-15 16:51:03
1 | 1 |2020-04-15 16:49:34
2 | 2 |2020-04-15 16:51:03