Помогите MySQL UPDATE in loop

gr1nader
На сайте с 26.10.2012
Offline
20
650

есть текстовый файл с подобным содержимым:

Mike

Alex

Piter

....

и база мускул, нужно найти все переменные (строки в файле) и сделать им упдейт в базе вот пример того что нужно сделать в едином запросе

mysql_query("UPDATE users SET active = '1' WHERE name = 'Mike'");

но как не пытаюсь запустить в луп while/for дабы проапдейтило все имена из текстовика не идет.

беру масив из файла все делаю как нужно

Помогите, можно с указанием кошелька в ЛС )))

---------- Добавлено 31.05.2013 в 21:45 ----------

делаю так

$file = file('names.txt');

$cnt = count( $file );

$i = 0;

while ($i < $cnt) {

$id = $file[$i];

$query = "UPDATE users SET active = '1' WHERE name = '$id''";

mysql_query($query) or die ("Error in query: $query");

++$i;

}

echo "$id"; - выводит в лупе все строки проверил

OK
LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#1

$file = file('names.txt');

замените на:

$file = file('names.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

И будет вам счастье.

---------- Добавлено 31.05.2013 в 23:48 ----------

Да и вообще чего за WHILE?! 21 век всё же.

Вот и всё:

$file = file('names.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

foreach ($file as $id)

$query = "UPDATE users SET active = '1' WHERE name = '$id''";

mysql_query($query) or die ("Error in query: $query");

}

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
F9
На сайте с 13.04.2008
Offline
104
#2
LEOnidUKG:
Да и вообще чего за WHILE?! 21 век всё же.

Тогда уж:


$query = "UPDATE users SET active = '1' WHERE name IN ('" . join("','", file('names.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES)) . "')";
mysql_query($query) or die ("Error in query: $query");
IL
На сайте с 20.04.2007
Offline
435
#3

Тогда уж PDO.. с "вопросиками" по числу элементов массива и params = file()

(см пример 5 http://www.php.net/manual/ru/pdostatement.execute.php)

А то вдруг, в файле o'reilly будет..

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
siv1987
На сайте с 02.04.2009
Offline
427
#4

Тогда уж:


$data = file('names.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES));
$data = array_map('mysql_real_escape_string', $data);
mysql_query("UPDATE users SET active=1 WHERE name IN ('" . join("','", $data) . "')")
or die (mysql_error());

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий