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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Как присоединить одну таблицу к другой?

Сообщения:  [1-10]   [11-16] 

 
 автор: Владимир55   (15.02.2009 в 01:39)   письмо автору
 
   для: Trianon   (15.02.2009 в 01:20)
 

"Хотя я написал бы честно"
Мне очень импонирует Ваша корректность!

У меня пока мало опыта и вопросы звучат коряво - это я понимаю. Так что спасибо и за совет, и за терпение!

  Ответить  
 
 автор: Trianon   (15.02.2009 в 01:20)   письмо автору
 
   для: Владимир55   (15.02.2009 в 01:11)
 

если id тоже должен копироваться из таблицы - да. Хотя я написал бы честно:
$query = "
INSERT INTO tab_summ(id, identif,  time_s,  str_vn,  s_knigy)
  SELECT id, identif,  time_s,  str_vn,  s_knigy 
     FROM tab_sut 
     ORDER BY id
";

Если id'ы в разных таблицах живут жизнью независимой, их нужно из списков убрать.

>"Мне еще долго бритвой Оккама махать? :)"
>Я стараюсь..

просто Вы в этом диалоге пытаетесь смешать разные аспекты в кучу,
а я пытаюсь показать, что так только сложнее.

Нельзя одновременно думать и о том, как запрос построить, и как его в php уложить.
То есть можно, конечно, если голову не жаль...
Лучше зайти в phpMyAdmin (или еще какой любимый клиент) создать пару таблиц, что не жалко угробить, и покидать их туда сюда. А потом уже приниматься за обрамление в php .

  Ответить  
 
 автор: Владимир55   (15.02.2009 в 01:11)   письмо автору
 
   для: Trianon   (15.02.2009 в 00:56)
 

"Мне еще долго бритвой Оккама махать? :)"
Я стараюсь...

Тогда для добавления ВСЕХ строк таблицы tab_sut в таблицу tab_summ должен подойти такой код:
        $query = "INSERT INTO tab_summ  SELECT tab_sut *  
        FROM tab_sut "; 
        mysql_query($query);  


Годится?

  Ответить  
 
 автор: Trianon   (15.02.2009 в 01:02)   письмо автору
 
   для: Владимир55   (15.02.2009 в 01:00)
 

mysql_query($query) выполняет запрос, текст которого содержится в переменной $query.

да, проверка.

Мне еще долго бритвой Оккама махать? :)

  Ответить  
 
 автор: Владимир55   (15.02.2009 в 01:00)   письмо автору
 
   для: Trianon   (15.02.2009 в 00:54)
 

Я полагал, что
mysql_query($query);
выполняет запрос, при исполнении которого информация из одной таблицы записывается в другую.

Разве это не так?

А if(!$res) - это уже проверка?

  Ответить  
 
 автор: Trianon   (15.02.2009 в 00:56)   письмо автору
 
   для: Владимир55   (15.02.2009 в 00:50)
 

>А если нужно вставлять все строки, тогда как?

а если Вам нужно выбрать SELECTом из таблицы все строки, тогда как?

SELECT-часть оператора пишется по обычным правилам составления SELECT -запросов.
Кстати, INSERT-часть - тоже. Просто вместо VALUES со списком значений пишется оператор SELECT

  Ответить  
 
 автор: Trianon   (15.02.2009 в 00:54)   письмо автору
 
   для: Владимир55   (15.02.2009 в 00:50)
 

$res = mysql_query($query);
if(!$res) ...
ну и мануал для полноты картины рекомендует воспользоваться редкой довольно таки функцией mysql_info() , но это уже для эстетов...

  Ответить  
 
 автор: Владимир55   (15.02.2009 в 00:50)   письмо автору
 
   для: Trianon   (15.02.2009 в 00:45)
 

А если нужно вставлять все строки, тогда как?

Так:
        $query = "INSERT INTO tab_summ  (fldID) SELECT tab_sut.fldOrder_ID  
        FROM tab_sut  
        WHERE tab_sut.fldOrder_ID > 1; 
        ";
        mysql_query($query);    


Это верно?

  Ответить  
 
 автор: Trianon   (15.02.2009 в 00:45)   письмо автору
 
   для: Владимир55   (15.02.2009 в 00:38)
 

ну видимо автору примера нужно было не все строки вставлять, а только некоторые.
Которые больше сотни.

Первого вопроса не понял.
Выполняя запрос в phpMyAdmin никаких присваиваний $query делать не надо.
Выполняя его из php, все равно не хватает самого вызова mysql_query() и проверки успеха выполнения.

Кстати. В примере этом показано, как из таблицы в таблицу переносится один столбик.
Так вот, один - это тоже всего навсего особенность примера, а не ограничение конструкции оператора.

  Ответить  
 
 автор: Владимир55   (15.02.2009 в 00:38)   письмо автору
 
   для: Trianon   (15.02.2009 в 00:28)
 

Было бы превеличением сказать, что мне удалось полностью понять эту штуку. Может быть нужно делать так:
        $query = "INSERT INTO tab_summ  (fldID) SELECT tab_sut.fldOrder_ID 
        FROM tab_sut 
        WHERE tab_sut.fldOrder_ID > 100;
        ";


Это верно?

========================
А причем здесь число 100?
В чем его смысл?

  Ответить  

Сообщения:  [1-10]   [11-16] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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