Запись несколько групп строк базу данных
Есть вот такой код
<form action="dob_tool.php" method="post" id="submit1">
<div class="row">
<div class="col-md-6">
<div class="card">
<div class="card-body">
<div class="form-group">
<table class="table">
<tr>
<th> Артикул</th><th> Наименование</th><th> Группа товара</th><th> Ед. измерения</th></tr>
<tr>
<div class="input_block">
<th><input type="text" name="code[1]" value="" class="form-control" placeholder="Артикул"></th>
<th><input type="text" name="name[1]" value="" class="form-control" placeholder="Наименование"></th>
<th><input type="text" name="groups[1]" value="" class="form-control" placeholder="Группа товара"></th>
<th><input type="text" name="unit[1]" value="" class="form-control" placeholder="Ед. измерения"></th></tr>
</div>
<tr>
<div class="input_block">
<th><input type="text" name="code[2]" value="" class="form-control" placeholder="Артикул"></th>
<th><input type="text" name="name[2]" value="" class="form-control" placeholder="Наименование"></th>
<th><input type="text" name="groups[2]" value="" class="form-control" placeholder="Группа товара"></th>
<th><input type="text" name="unit[2]" value="" class="form-control" placeholder="Ед. измерения"></th></tr>
</div>
</table>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<input class="form-control" type="hidden" name="date" value="2019-12-11">
<button type="submit" class="btn btn-google btn-lg btn-block" >Добавить</button>
</div>
</div>
</div>
</form>
Здесь я попробовал сделать несколько групп строк введения данных Потом они отправляются в
if (isset($_POST['code1'])){ //Определяет существует ли Card_id, а так как мы отправили из ADD.php то card_id существует
foreach($_POST['code1']
$code = trim ( $_POST['code']);
$name = trim($_POST['name']);
$groups = trim ( $_POST['groups']);
$unit = trim($_POST['unit']);
$code = trim ( $_POST['code']);
$name = trim($_POST['name']);
$groups = trim ( $_POST['groups']);
$unit = trim($_POST['unit']);// Убрали со всех вводимых данных пробелы и ковычки для безопасности
$arr['code'] = $code;
$arr['name'] = $name;
$arr['groups'] = $groups;
$arr['unit']= $unit;
//собрали для удобства в массив
$new_tool = insert_tool($arr);
if ($new_tool['success'])
{
$header = 'Location:/bootstrap/1c.php?success='.$new_tool['success'];//?(вопросительный знак стоит перед GET параметром) общий смысл что мы заполняем переменную header, данными клиента с определенным card_id
}
else
{
$header = 'Location:/bootstrap/1c.php?success='.$new_tool['success']."&description=".$new_tool['description'];
}
header($header); //переадресация в другой файл сразу с GET-запросом для поиска по номеру карты
exit;
}
?>
Здесь не знаю, как оформить цикл проверки данных на иньекции и отправки в функцию
function insert_tool ($arr)
{
global $link;
$return['success'] = false;//по умолчанию не удлаось
$return['description'] = "";
$code = mysqli_real_escape_string($link, $arr['code']); //безопасность "."DELETE ALL
$groups = mysqli_real_escape_string($link, $arr['groups']); //безопасность
$name = mysqli_real_escape_string($link, $arr['name']); //безопасность
$unit = mysqli_real_escape_string($link, $arr['unit']); //безопасность
$query = "SELECT * FROM tool WHERE code='$code' OR name='$name'"; //surname LIKE '%ова%'
$result = mysqli_query($link, $query); //link задать
if (mysqli_num_rows($result) < 1)
{
$insert_query = "INSERT INTO tool (code, groups, name, unit, date ) VALUES ('$code','$groups','$name','$unit',NOW())";
$result_insert = mysqli_query($link, $insert_query);// получаем результат запроса и вставки
if ($result_insert)
{
$return['success'] = true; //а теперь оказывается что удалось
$return['id'] = mysqli_insert_id($link);//Это зачем ??, вроде понял что делает, но зачем. вдруг понадобится, а у нас это уже есть.
$return['code'] = $code;
// return $return;
}
else
{
//$return['success'] = false; //закомментировали, потому что это прикольно
$return['description'] = "Не удалось вставить строку в БД! Строк в БД: ".mysqli_num_rows($result);//Что заставляет его вывестись на экран. ничего не заставляет, этот текст просто сохраняется в $return, и уже после выполнения фукнции ВОЗМОЖНО будет вывод на экран
$return['rows'] = mysqli_num_rows($result);
// return $return;
}
}
else
{
//$return['success'] = false;
$return['description'] = "У нас уже есть инструмент с таким артикулом либо названием";// вставить номер клиента и перенаправить на его страницу
// return $return;
}
return $return;//ВЕРНУТЬ переменную $return (туда, где эту фукнцию вызвали)
}
Все выше приведенное работает для одной группы данных вводимых в таблицу БД. Подскажите как оформить, чтобы можно было сразу 10-100 групп данных заносить в БД