Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как обновить/удалить запись?
 
 автор: chip   (01.12.2004 в 06:28)   письмо автору
 
 

Как обновить/удалить запись?
допустим есть две таблица tabl_1 и tabl_2
в перовой столбцы id и nomer
во второй id text
нужно обновить/удалить запись по столбцу = nomer из второй таблицы .

SELECT @id := id
FROM tabl_1 WHERE nomer ='1111325243';
UPDATE tabl_2 SET text='privet' WHERE id =@id ;

В phpmyadmin этот код работает а вот как заставить работать это у себя в скрипте?
Этот вариант работает когда данные во второй таблице tabl_2 уже есть т.е. если id с определенным значением нет то новой записи там и создаваться не будет.

Алгоритм получается такой найти nomer в tabl_1 произвести поиск по двум таблицам
во второй искать id если нет id "= " nomer то во вторую таблицу tabl_2 произвести вставку строки , если же во второй таблице запись есть то обновить ее .

Как это реализовать с меньшим колличесвтом ходов ?

   
 
 автор: glsv (Дизайнер)   (01.12.2004 в 09:09)   письмо автору
 
   для: chip   (01.12.2004 в 06:28)
 

Хм, один запрос точно можно сэкономить

Первый запрос будет таким

SELECT * FROM tabl_1, tabl_2 WHERE tabl_1.id=tabl_2.id AND tabl_1.nomer=[номер]

В [номер] нужно подставлять значение искомого номера

Далее смотрим, если запрос вернул хотя бы одну строку

<?
// К примеру, $num=11
$num=11;
$query=" SELECT * FROM tabl_1, tabl_2 WHERE tabl_1.id=tabl_2.id AND tabl_1.nomer=$num
"
;
$res mysql_query($query);
if (
$res)
{
  if(
mysql_num_rows($res)>0)
  {
    
// Если кол-во строк в запросе больше нуля, 
    // то запись в tabl_2 уже существует 
    // и ее нужно обновить
    
---------------
     
Выполняем запрос на Обновление
    
---------------
  }
  else
  {
    
// Записи в tabl_2 НЕ существует 
    // и ее нужно добавить
    
---------------
     
Выполняем запрос на Добавление
    
---------------
  }
}
else
{
  echo 
"Ошибка при запросе.<br>$query";
}
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования