SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 08.06.2008 12:57:47

star-ik
Участник
Зарегистрирован: 06.06.2008
Сообщений: 14

Циклическая замена дданных в таблице

У меня есть старая телефонная база, но она ещё актуальна.
В колонке COD необходимо поменять код "095" на "495" только для города "Москва".
Написал следующий код:

// Соединиться с Базой Данных  mySQL
$connection=mysql_connect ($baseURL, $username, $password);
if (!$connection) {
  die('Невозможно соединиться с базой данных: ' . mysql_error());
}

// Активировать Базу Данных mySQL
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
  die ('Нельзя использовать БД : ' . mysql_error());
}

// Выборка строк таблицы  в Базе Данных по условию
$query = "SELECT * FROM tel_base WHERE 'Москва' = city";

$result = mysql_query($query);
if (!$result) {
  die('Неверный запрос: ' . mysql_error());
}

//Подсчет найденных строк в таблице Базы Данных, вывод на экран найденных "id"
$n=mysql_num_rows($result);
for($i=0;$i<$n;$i++)
echo "",mysql_result($result,$i,id),"<br>";

На экран выводятся все номера id в которых найден город "Москва"
Как выполнить запрос:

$query = 'UPDATE `tel_base` SET `COD` = \'495\'  WHERE `ip_block`.`id` = "номер id в котором меняем код"  LIMIT 1;';

, что бы "номер id в котором меняем код" циклически менялся на "найденный номер id" ?

Неактивен

 

#2 08.06.2008 13:25:17

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: Циклическая замена дданных в таблице

Можно использовать более простой скрипт - он просто обновит все коды 095 на 495:


<?php
mysql_query("UPDATE tel_base SET cod = 495 WHERE cod = 095") or die('Неверный запрос: ' . mysql_error());
$num_updated = mysql_affected_rows(); // число обновленных записей
?>
 

Имена таблиц, не содержащие небуквенно-цифровых символов, можно писать без обратных кавычек.
Имена столбцов регистронезависимы.

Неактивен

 

#3 08.06.2008 14:23:30

star-ik
Участник
Зарегистрирован: 06.06.2008
Сообщений: 14

Re: Циклическая замена дданных в таблице

Спасибо за предложенный вариант, наверное я попробую в таком виде
<?php
$city = "Москва";
mysql_query("UPDATE tel_base SET cod = 495 WHERE city = '$city'") or die('Неверный запрос: ' . mysql_error());
$num_updated = mysql_affected_rows(); // число обновленных записей
?>

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson