Добрый день Есть такой кусок кода:
$result = array_unique($array);
$all = count($result);
for($i=1; $i<$all; $i++)
{
foreach ($result as $key => $value)
{
}
$stmt = mysqli_prepare($connect, "UPDATE `21.02.18` SET teachers_processed=? WHERE id=$i");
mysqli_stmt_bind_param($stmt, 's', $value);
mysqli_stmt_execute($stmt); //выполнение подготовленного запроса
mysqli_stmt_close($stmt); //закрываем запрос
}
Как это всё объединить? Сейчас этот код работает, но не так как надо. Помогите пожалуйста :)
В итоге нужно, что бы в базе обновлялся столбик teachers_processed , и чтобы обновления в базу заносились начиная с первого id
Писал с головы, могут быть ошибки
$teachers_unique_processed = array_unique($teachers_processed);
//Здесь заменяем ключи масива начиная от 1. Это избавит от наличия счетчика
$teachers_unique_processed = array_combine(range(1, count($teachers_unique_processed)), $teachers_unique_processed);
//Здесь формируем один запрос. Он будет выполняться значительно быстрее чем много отдельных.
$update_query = "UPDATE `table` SET ";
foreach($teachers_unique_processed as $id => $value){
$update_query .= "WHEN `id`='" . mysqli_real_escape_string($id) . "' THEN '" . mysqli_real_escape_string($value) . "' ";
}
$update_query = " WHERE `id` iN (" . implode(',', array_keys($teachers_unique_processed)) . ")";
mysqli_query($update_query) or die(mysqli_error());
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости