Как сделать обновление в базе данных циклом foreach

259
29 июля 2017, 06:37

Пожалуйста дайте подскажку как обновить базу при помощи форыча. Вчера получилось, а щас нифига не получается, записывается во все строки только последняя строка.

Скрипт регулярным выражением форматирует по шаблону телефоны и должен перезаписывать на правильный формат. Но елки палки, цикл записывает в базу один и тот же номер, гори он в аду

<?php
error_reporting(E_ALL);
  define('DB_HOST', '111');
  define('DB_USER', '111');
  define('DB_PASSWORD', '111');
  define('DB_NAME', '111');
$dbc= mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) or die('error DB');
$query="SELECT * FROM user";
mysqli_query($dbc, 'set names utf8');
$result=mysqli_query($dbc, $query) or ('ошибка ');
 while($row=mysqli_fetch_array($result)){
    $user_id=$row['user_id'];
    $string=$row['telefon']; 
    $pattern = [
    '~(?:[^\d\s]+|(?<=\d)\s(?=\d))~',
    '~(?<=\b)(?=\d)~',
    '~\b[8](\d+\b)~'
];
$replace = ['', '+', '37$1'];
$string = preg_replace($pattern, $replace, $string);
$masiv[]=$string;  
   }
   foreach($masiv as &$telefon)
{
    $query="UPDATE user SET telefon='$telefon'";
    $data=mysqli_query($dbc, $query) or die('error');
}
?>
Answer 1
$telefon='';
$user_id=...;
$stmt = mysqli_prepare($dbc, "UPDATE user SET telefon=? WHERE user_id=?");
$stmt->bind_param('si', $telefon, $user_id);
foreach($masiv as $telefon)
{
    $stmt->execute();
}

Только вот у вас каждый раз будут обновляться все телефоны в таблице с таким SQL. Может там куда WHERE вставить (потелепатировал слегка)?

READ ALSO
Скачивание файла с чужого сервера на свой

Скачивание файла с чужого сервера на свой

Ссылка имеет формат: https://appcomagic

271
Действие (sql update) по кнопке в GridView

Действие (sql update) по кнопке в GridView

Необходимо по нажатию на галочку напротив строки присваивать ей статус ready (поле в бд) и скрывать по тому же фильтру (ready)Есть sql команда, есть...

202
Как сделать фильтр товаров для интернет магазина на laravel?

Как сделать фильтр товаров для интернет магазина на laravel?

Подскажите, как сделать правильный фильтр товаров? Сейчас делаю так:

741
регулярные выражения php

регулярные выражения php

Имеется регулярное выражение:

268