Как объединить foreach и for?

263
27 февраля 2018, 06:42

Добрый день Есть такой кусок кода:

$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

Answer 1

Писал с головы, могут быть ошибки

$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());
READ ALSO
Как исправить код

Как исправить код

Нашел проблему с уязвимостью в коде с помощью одного сайта Вот код

267
Условие для последнего элемента twig

Условие для последнего элемента twig

Помогите составить условие на twig, оно нужно для вывода последней хлебной крошки не в виде ссылки, а в виде просто текстаЕсть аналогичное условие...

337
Не работает Mysql запрос

Не работает Mysql запрос

Есть запрос фильтрации товаров:

262
Сортировка массива по части строки

Сортировка массива по части строки

ЗдравствуйтеПодскажите такой вопрос

276