Автор Тема: Вставка результата одного селекта внутри другого SQL-запроса  (Прочитано 2369 раз)

0 Пользователей и 1 Гость смотрят эту тему.

Оффлайн Белый Волк

  • 3 уровень
  • ***
  • Сообщений: 224
  • карма: +1/-0
    • Просмотр профиля
mysql_query("UPDATE variable SET value = 's:3:\"011\";' WHERE name='theme_default'");
 
Как в вышеизложенном скрипте сделать так, чтобы вместо 011 вставлялось результат следующей выборки

select theme from users where name='editor'

Выборка возвращает только одну строчку!

Оффлайн Majesty

  • Новичок
  • *
  • Сообщений: 30
  • карма: +0/-0
    • Просмотр профиля
    • Каталог казахстанских интернетов
UPDATE variable SET value='s:3:"(SELECT theme FROM users WHERE name=`editor`)";' WHERE name='theme_default'только СУБД должна поддерживать подзапросы. Например, Oracle, PostgreSQL, MySQL версии 5.0, etc...

ЗЫ: В таком запросе нельзя указывать одну и ту же таблицу.
Всего хорошего, дорогие коллеги!

Оффлайн Fiyanov

  • 2 уровень
  • **
  • Сообщений: 57
  • карма: +2/-4
  • За красивой жизнью в погоне...
    • Просмотр профиля
Из селекта запихиваешь данные в переменную, переменную вставляешь в запрос UPDATE.

Оффлайн Rex

  • Administrator
  • 7 уровень
  • *****
  • Сообщений: 1811
  • карма: +15/-0
  • Странник
    • Просмотр профиля
    • ВКГУ им. С. Аманжолова
Примерно так.
<?php
/**
  * Some stuff..
  */
$res mysql_query("select theme from users where name='editor'");
if (!
mysql_num_rows($res)){
 exit(
'Empty result.');
}
$theme mysql_result($res,0,'theme');
mysql_free_result($res);
mysql_query("UPDATE variable SET value = '{$theme}' WHERE name='theme_default'");
/**
  * Some stuff..
  */
?>