|
|
|
| Как обновить/удалить запись?
допустим есть две таблица 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 произвести вставку строки , если же во второй таблице запись есть то обновить ее .
Как это реализовать с меньшим колличесвтом ходов ? | |
|
|
|
|
|
|
|
для: 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";
}
?>
|
| |
|
|
|