Модераторы: skyboy

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с запросом 
:(
    Опции темы
IceWall
Дата 19.5.2009, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 23.9.2007

Репутация: нет
Всего: нет



Значит, у нас есть 2 таблицы:
1. students с полями id,fio,id_group,kol
2. date с полями id,fio_id,date2
date.fio_id с students.id
Изначально идет выборка, по students.id, все выбранные элементы передаются в POST_['item'], дальше разбиваются $ids = implode( ',', $_POST['item'] );
Нужно сделать так, чтобы в таблицу date добавлялись все выбранные элементы из students и время.
Вот что получилось, но не работает =\
Код

SELECT * FROM students, groups INSERT INTO date (fio_id,date2) WHERE date.fio_id=students.id and  students.id IN ('.$ids.') and date2 LIKE '%$date2%'"


Помогите пожалуста как сделать правильно

Это сообщение отредактировал(а) IceWall - 19.5.2009, 10:39
PM MAIL   Вверх
Akina
Дата 19.5.2009, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Цитата(IceWall @  19.5.2009,  11:38 Найти цитируемый пост)
Вот что получилось, но не работает 

Ну ещё бы! Маны кто читать будет?
Код

INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name [(col_name,...)]
    SELECT ...
    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
IceWall
Дата 19.5.2009, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 23.9.2007

Репутация: нет
Всего: нет



Akina, спасибо.
Код

INSERT INTO date (fio_id,date2) SELECT students.id FROM students ON  DUPLICATE KEY UPDATE date.fio_id=students.id and date.date2 LIKE '%$date2%' WHERE students.id IN ('.$ids.') ;

в чем ошибка? 

Это сообщение отредактировал(а) IceWall - 19.5.2009, 11:20
PM MAIL   Вверх
Akina
Дата 19.5.2009, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Цитата(IceWall @  19.5.2009,  12:08 Найти цитируемый пост)
в чем ошибка?  

В том, что в теге "Код" ты указал SQL, а кавычки не убрал.

Добавлено через 1 минуту и 14 секунд
Код

INSERT INTO date (fio_id,date2) 
  SELECT students.id FROM students
Как с арифметикой? нормально? ну так посчитай, сколько полей ты выбираешь и сколько вставляешь...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
IceWall
Дата 19.5.2009, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 23.9.2007

Репутация: нет
Всего: нет



Akina, ну дык, date2, это переменная, и она не хранится в таблице students. Пойду дальше думать =)
PM MAIL   Вверх
Akina
Дата 19.5.2009, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Цитата(IceWall @  19.5.2009,  12:22 Найти цитируемый пост)
date2, это переменная, и она не хранится в таблице students.

И что? вставляй её вторым полем в select как литерал - но второе поле ОБЯЗАНО быть.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
IceWall
Дата 19.5.2009, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 23.9.2007

Репутация: нет
Всего: нет



Код

INSERT INTO date (fio_id,date) SELECT students.id,'$date2' FROM students ON  DUPLICATE KEY UPDATE date.fio_id=students.id WHERE students.id IN ('.$ids.')

Все работает, круто, но он не работает выборка.
Код

WHERE students.id IN ('.$ids.')


PM MAIL   Вверх
Akina
Дата 19.5.2009, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Цитата(IceWall @  19.5.2009,  12:41 Найти цитируемый пост)
не работает выборка

А что в этот момент в $ids ?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
IceWall
Дата 19.5.2009, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 23.9.2007

Репутация: нет
Всего: нет



Akina, выбранные students.id
PM MAIL   Вверх
Akina
Дата 19.5.2009, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Нет, пожалуйста, дословно. Содержимое, а не смысл.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
IceWall
Дата 19.5.2009, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 23.9.2007

Репутация: нет
Всего: нет



Тоесть, сначало выбираются некоторые id допустим: 2 7 12. Они передаются на страницу, и затем разбиваются.
Тоесть в итоге у нас получается $ids=2,7,12
PM MAIL   Вверх
Akina
Дата 19.5.2009, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



И соответственно в запрос передаётся
Код

WHERE students.id IN ('2,7,12')

Как полагаешь, это - правильно?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
IceWall
Дата 19.5.2009, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 23.9.2007

Репутация: нет
Всего: нет



Akina, незнаю, но след строчка работает правильно
Код

UPDATE students SET kol=kol+1 WHERE students.id IN ('.$ids.')


Это сообщение отредактировал(а) IceWall - 19.5.2009, 13:25
PM MAIL   Вверх
Zloxa
Дата 19.5.2009, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 53
Всего: 161



Код

INSERT INTO date (fio_id,date) 
   SELECT students.id,'$date2' 
   FROM students 
   WHERE students.id IN ('.$ids.') 



--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
IceWall
Дата 19.5.2009, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 23.9.2007

Репутация: нет
Всего: нет



Zloxa, не добавляет не чего =(
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0873 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.