ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 15.06.2008, 16:45
Аватар для VDShark
VDShark
Участник форума
Регистрация: 01.02.2007
Сообщений: 286
Провел на форуме:
804931

Репутация: 526
По умолчанию

Dtw Мускул стал держать хранимые процедуры начиная с версии 5.0... а стабильно и того позже. Думаю дело в этом)
 
Ответить с цитированием

  #2  
Старый 15.06.2008, 17:35
Аватар для Nickotin
Nickotin
Участник форума
Регистрация: 15.02.2007
Сообщений: 133
Провел на форуме:
370092

Репутация: 52
Отправить сообщение для Nickotin с помощью ICQ
По умолчанию

Кстати да,солидарен.
 
Ответить с цитированием

  #3  
Старый 21.06.2008, 18:52
Аватар для VDShark
VDShark
Участник форума
Регистрация: 01.02.2007
Сообщений: 286
Провел на форуме:
804931

Репутация: 526
По умолчанию

Впринципе все легко - одно НО.
По данной структуре не пойму (хотя особо не думал) вот это:

7.Вывести предметы, читающиеся хотя бы в двух семестрах.

Т.е. в таблице м.б. нсколько одноименных предметов с разными идентификаторами? Другого варианта не вижу
 
Ответить с цитированием

  #4  
Старый 21.06.2008, 22:04
Аватар для VDShark
VDShark
Участник форума
Регистрация: 01.02.2007
Сообщений: 286
Провел на форуме:
804931

Репутация: 526
По умолчанию

Структура таблиц
Код:
CREATE TABLE `Lecturers` (
`id` INT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`fio` VARCHAR( 100 ) NOT NULL ,
`rank` VARCHAR( 40 ) NOT NULL ,
`post` VARCHAR( 40 ) NOT NULL ,
PRIMARY KEY ( `id` ) 
);

CREATE TABLE `disciplines` (
  `id` int(5) unsigned NOT NULL auto_increment,
  `title` varchar(70) NOT NULL,
  `semestr` int(2) NOT NULL,
  `form` enum('exam','setoff','other') NOT NULL,
  PRIMARY KEY  (`id`)
);

CREATE TABLE `schedule` (
  `id_lector` int(5) UNSIGNED NOT NULL,
  `id_discipline` int(5) UNSIGNED NOT NULL,
  `weekday` enum('Понедельник','Вторник','Среда','Четверг','Пятница','Суббота','Воскресенье') NOT NULL,
  PRIMARY KEY  (`id_lector`,`id_discipline`),
  FOREIGN KEY (`id_lector`) REFERENCES `lecturers`(`id`),
  FOREIGN KEY (`id_discipline`) REFERENCES `disciplines`(`id`)
);
Если что не нравится - можешь поменять
Вот собственно сами запросы:
Код:
1) SELECT * FROM `lecturers` WHERE `rank`='Кандидат Наук'
----------------------
2)SELECT DISTINCT `fio`
FROM `schedule` as `sc`
JOIN `disciplines` as `d` on `sc`.`id_discipline`=`d`.`id`
JOIN `lecturers` as `l` on `l`.`id`=`sc`.`id_lector`
WHERE `d`.`form`='exam' AND (`id_lector`,`semestr`) <> ALL(
SELECT `id_lector`,`semestr`
FROM `schedule` as `sc`
JOIN `disciplines` as `d` on `sc`.`id_discipline`=`d`.`id`
WHERE `d`.`form`<>'exam'
)
----------------------
3) SELECT DISTINCT `fio`
FROM `schedule` as `sc`
JOIN `disciplines` as `d` on `sc`.`id_discipline`=`d`.`id`
JOIN `lecturers` as `l` on `l`.`id`=`sc`.`id_lector`
WHERE `d`.`form`='setoff'
----------------------
4) SELECT * FROM lecturers`
----------------------
5) SELECT DISTINCT `l`.`fio`
FROM `lecturers` as `l` 
JOIN `schedule` as `sc` on `l`.`id`=`sc`.`id_lector` 
JOIN `disciplines` as `d` on `sc`.`id_discipline`=`d`.`id`
WHERE `l`.`id` <> ALL(
SELECT `l`.`id`
FROM `lecturers` as `l` 
JOIN `schedule` as `sc` on `l`.`id`=`sc`.`id_lector` 
JOIN `disciplines` as `d` on `sc`.`id_discipline`=`d`.`id`
WHERE `d`.`semestr` NOT IN (3,4))
----------------------
6) SELECT `fio`
FROM `schedule` as `sc`
JOIN `disciplines` as `d` on `sc`.`id_discipline`=`d`.`id`
JOIN `lecturers` as `l` on `l`.`id`=`sc`.`id_lector`
WHERE `l`.`rank` = 'Кандидат Наук' AND (`d`.`semestr`=7 OR `d`.`semestr`=8)
----------------------
7) SELECT `title`
FROM `disciplines`
GROUP BY `title`
HAVING count(DISTINCT `semestr`)>1
----------------------
8) SELECT `l`.`fio`
FROM `schedule` as `sc`
JOIN `disciplines` as `d` on `sc`.`id_discipline`=`d`.`id`
JOIN `lecturers` as `l` on `l`.`id`=`sc`.`id_lector`
WHERE `l`.`rank`='Доцент'
GROUP BY `l`.`id`
HAVING count(DISTINCT `d`.`title`)=3
----------------------
9) SELECT `l`.`fio`
FROM `schedule` as `sc`
JOIN `disciplines` as `d` on `sc`.`id_discipline`=`d`.`id`
JOIN `lecturers` as `l` on `l`.`id`=`sc`.`id_lector`
WHERE `l`.`rank`='Доктор Наук' AND `d`.`form`='exam' AND (`d`.`semestr`=9 OR `d`.`semestr`=10)
Сильно не тестил - если что бут не так - то стучись, помогу.
 
Ответить с цитированием

  #5  
Старый 30.06.2008, 18:46
Аватар для DTW
DTW
Участник форума
Регистрация: 11.05.2008
Сообщений: 202
Провел на форуме:
420713

Репутация: 104
По умолчанию

Помогите такая проблема
что при таком запросе он достает многа одинаковых фотах

в чем может быть ошибка ?

SELECT jos_vm_product.product_thumb_image FROM jos_vm_product,jos_vm_product_category_xref where category_id

Мне надо выбрать с Бд таблицы

jos_vm_product,jos_vm_product_category_xref
Это таблицы компонент джумлы virtuemart..
как бы запросом достаю все фото на продукт ток он их че выводи 5 раз одно фото однаково

PHP код:
$query="SELECT jos_vm_product.product_thumb_image FROM jos_vm_product,jos_vm_product_category_xref where category_id=$id  ";
return 
$res2 mysql_query($query); 
 
Ответить с цитированием

Запрос
  #6  
Старый 30.06.2008, 19:05
Аватар для DTW
DTW
Участник форума
Регистрация: 11.05.2008
Сообщений: 202
Провел на форуме:
420713

Репутация: 104
Exclamation Запрос

приложение ......


 
Ответить с цитированием

  #7  
Старый 30.06.2008, 19:16
Аватар для Naydav
Naydav
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
Провел на форуме:
849583

Репутация: 210
По умолчанию

Что бы не
Цитата:
че выводи 5 раз одно фото однаково
,
а всяко-разно
обьясни какие именно поля нужно выбирать, и из каких таблиц И ПО КАКОМУ УСЛОВИЮ

Данный запрос выбирает поле product_thumb_image из таблицы jos_vm_product
по неизвестно какому условию, возможно правильно "WHERE jos_vm_product.category_id="
или так

Цитата:
$query="
SELECT product_thumb_image
FROM jos_vm_product
WHERE category_id IN(
SELECT id
FROM jos_vm_product_category_xref
WHERE ...
)";
Какие поля в jos_vm_product_category_xref ?
 
Ответить с цитированием

  #8  
Старый 30.06.2008, 19:19
Аватар для DTW
DTW
Участник форума
Регистрация: 11.05.2008
Сообщений: 202
Провел на форуме:
420713

Репутация: 104
По умолчанию

Поля такие

category_id product_id product_list
123 99 NULL


таблице jos_vm_product .поле product_thumb_image

нет category_id а есть product_id

Последний раз редактировалось DTW; 30.06.2008 в 19:25..
 
Ответить с цитированием

  #9  
Старый 30.06.2008, 19:26
Аватар для Naydav
Naydav
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
Провел на форуме:
849583

Репутация: 210
По умолчанию

Попробуй так
Цитата:
$query="
SELECT product_thumb_image
FROM jos_vm_product
WHERE product_id IN(

SELECT product_id
FROM jos_vm_product_category_xref
WHERE category_id = $id

)";
Должно работать

пс И не забывай фильтровать $id, хотя бы так
$id = (int)$id;

Последний раз редактировалось Naydav; 30.06.2008 в 19:29..
 
Ответить с цитированием

  #10  
Старый 30.06.2008, 19:36
Аватар для DTW
DTW
Участник форума
Регистрация: 11.05.2008
Сообщений: 202
Провел на форуме:
420713

Репутация: 104
По умолчанию

Спс огромное все работает
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сетевой этикет (Перед тем, как задать вопрос хакеру) satana-fu Статьи 7 21.10.2009 07:40
Ответы на часто задаваемые вопросы + линки на статьи по SQL/XSS/PHP-инклуд Jokester Уязвимости 2 28.06.2009 00:19
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ