[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Возможно ли написать такой запрос
Страницы: 1, 2
SoMeOnE
Есть массив приходящих данных. Номер вопроса и ответ на него.
Примерно так.
Array (
1 => 2
2
=>5
4
=> 2
5
=> 6
);


В базе таблица с вопросом, ответами на него и колонкой правильно ответа (по цифре)

Можно одним запросам вытащить кол-во правильных ответов.

Т.е на данный момент опять только 60 запросов сделать нужно или смотря сколько ответов пришло. Как правильно?
vagrand
Возможно я не все понял, но вроде как запрос будет таким:
('select count(id) and correct_number
from questions
where id in ('
. join(',', array_keys($array)) . ') and correct_answer_id in (' . join(',', $array) . ')')


_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
FatCat
Лучше в 1 запросе 60 конструкций с AND
SELECT COUNT(id) AS cid FROM table WHERE id = 1 AND otvet = 2 OR ...
чем 60 запросов.
Оба поля должны быть проиндексированы.


vagrand
Опередил! :D :D

_____________
Бесплатному сыру в дырки не заглядывают...
sergeiss
Есть у меня сомнения в правильности уже данных ответов... Структуру таблицы покажи! И еще лучше добавь пример с данными.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
SoMeOnE
sergeiss
Структура таблицы. Там вопрос. все варианты ответа.
Вопросы и ответы не разделены по разным таблицам.
Думаю так было бы правильней.
И в одном столбце указан по цифре верный вариант
А когда фронт энд формируется. он в аттрибут ответа записывает номер этого ответа. Соот на сервер после отправляется номер ответа который овтетил юзер.
sergeiss
SoMeOnE, ты все-таки "огласи" структуру-то smile.gif
Цитата (SoMeOnE @ 17.01.2014 - 17:09)
Там вопрос. все варианты ответа.
Вопросы и ответы не разделены по разным таблицам.

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

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
SoMeOnE
просто структура плохо будет видна здесь)

CREATE TABLE IF NOT EXISTS `test_content` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`number` int(5) unsigned NOT NULL,
`test_id` int(10) unsigned NOT NULL,
`level` int(1) unsigned NOT NULL,
`question_ru` text NOT NULL,
`answer_1_ru` text NOT NULL,
`answer_2_ru` text NOT NULL,
`answer_3_ru` text,
`answer_4_ru` text,
`answer_5_ru` text,
`right_answer` int(1) unsigned NOT NULL,
`order` int(5) unsigned NOT NULL,
`status` int(1) unsigned NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=130 ;


Примерные данные.
Свернутый текст


INSERT INTO `test_content` (`id`, `number`, `test_id`, `level`, `question_ru`, `answer_1_ru`, `answer_2_ru`, `answer_3_ru`, `answer_4_ru`, `answer_5_ru`, `right_answer`, `order`, `status`) VALUES
(1, 1, 3, 1, 's1_1_0.gif', 's1_1_1.gif', 's1_1_2.gif', 's1_1_3.gif', NULL, NULL, 2, 0, 1),
(
2, 2, 3, 1, 's1_2_0.gif', 's1_2_1.gif', 's1_2_2.gif', 's1_2_3.gif', NULL, NULL, 2, 0, 1),
(
3, 3, 3, 1, 's1_3_0.gif', 's1_3_1.gif', 's1_3_2.gif', 's1_3_3.gif', NULL, NULL, 2, 0, 1),
(
4, 4, 3, 1, 's1_4_0.gif', 's1_4_1.gif', 's1_4_2.gif', 's1_4_3.gif', NULL, NULL, 2, 0, 1),
(
5, 5, 3, 1, 's1_5_0.gif', 's1_5_1.gif', 's1_5_2.gif', 's1_5_3.gif', NULL, NULL, 2, 0, 1),
(
6, 6, 3, 1, 's1_6_0.gif', 's1_6_1.gif', 's1_6_2.gif', 's1_6_3.gif', NULL, NULL, 2, 0, 1),
(
7, 7, 3, 1, 's1_7_0.gif', 's1_7_1.gif', 's1_7_2.gif', 's1_7_3.gif', NULL, NULL, 2, 0, 1),
(
8, 8, 3, 1, 's1_8_0.gif', 's1_8_1.gif', 's1_8_2.gif', 's1_8_3.gif', NULL, NULL, 2, 0, 1),
(
9, 9, 3, 1, 's1_9_0.gif', 's1_9_1.gif', 's1_9_2.gif', 's1_9_3.gif', NULL, NULL, 2, 0, 1),
(
10, 10, 3, 1, 's1_10_0.gif', 's1_10_1.gif', 's1_10_2.gif', 's1_10_3.gif', NULL, NULL, 2, 0, 1),
.....




(
44, 1, 3, 3, 'Человек - своему товарищу: "Вы великолепны"', 'Довольный служащий – директору', 'Благодарный ученик – учителю', 'Недовольный человек – знакомому', NULL, NULL, 2, 0, 1),
(
45, 2, 3, 3, 'Продавец – покупателю: "Вы получите, что надо"', 'Улыбающийся учитель – ученику', 'Врач – больному', 'Полицейский – пьянице', NULL, NULL, 2, 0, 1),
(
46, 3, 3, 3, 'Судья – победителю: "Поздравляю"', 'Отец – победителю', 'Друг – победителю', 'Проигравший – победителю', NULL, NULL, 2, 0, 1),
(
47, 4, 3, 3, 'Гордый отец – другу: "Посмотрите на неё"', 'Ревнивая женщина – подруге', 'Обрадованный мальчик – другу', 'Восхищённая девушка – другу', NULL, NULL, 2, 0, 1),
(
48, 5, 3, 3, 'Человек своему другу: "Что ты делаешь? "', 'Рассерженная мать – ребёнку', 'Заинтригованный прохожий – играющему ребёнку', 'Учитель – примерному ученику', NULL, NULL, 2, 0, 1),
(
49, 6, 3, 3, 'Врач – больному ребёнку: "Прими-ка это"', 'Мать – сыну', 'Боец – противнику', 'Нагруженная жена – мужу', NULL, NULL, 2, 0, 1),


....



Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.