Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/22: Рейтинг темы: голосов - 22, средняя оценка - 4.86
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
1

Работа с БД, связывание таблиц "фильмы", "жанры", "режиссеры"

16.08.2015, 22:01. Показов 4133. Ответов 48
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребят, всем привет! накидайте какие-нить идеи по реализации

ситуация такая есть таблицы - "списки_жанров", "фильмы", "режиссеры"
мне нужно на актитиви с добавлением фильмов иметь такие поля

поле для ввода названия_фильма
дропдаун со списком имеющихся жанров
дропдаун со списком имеющихся режиссеров

то есть задача прикрепить определенный фильм к определенному режиссеру и жанру
знаю, что вместо дропдауна тут используется Spinner кажется, но как осуществить все остальное не в курсе, знаю как это делается в asp.net , а тут полный ноль, подскажите идейки, главная трабл, что не представляю как выбрать списки жанров и режиссеров из таблиц
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.08.2015, 22:01
Ответы с готовыми решениями:

Реализовать указанные запросы. Вариант 9 - БД "Актеры, Фильмы, Режиссеры, Рейтинги"
Индивидуальные задания: 1. Выбрать типы для атрибутов 2. Используя конструктор таблиц Access,...

Осуществить поиск по столбцу "жанры" БД, и вывести все фильмы, содержащие "жанр", введенный в Edit
С++ Builder , нужно осуществить поиск по 1 столбцу "жанры" БД , и вывести все фильмы содержащие...

Выборка из таблиц бд Актеры и фильмы
Доброго времени суток. Просьба помочь. Имею три таблицы Фильмы (Код фильма, Наименование,...

связывание таблиц
Подскажите пожалуйста как связывать таблицы в делфи.

48
106 / 106 / 1
Регистрация: 09.04.2012
Сообщений: 655
17.08.2015, 00:35 2
http://startandroid.ru/ru/urok... hij-spisok
0
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
17.08.2015, 10:36 3
Присваиваешь каждому итему свой id, столбцы таблиц будут в виде:
id_N - Название - id_R - id_G
id_R - Режиссер
id_G - Жанр
Выбираешь фильму, режиссера и жанр, кликаешь ОК - выполняется sql - UPDATE [таблица] SET... WHERE id_N =... .
0
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
17.08.2015, 14:59  [ТС] 4
Rube, уже сделал)
скажите, не знаете как отсюда получить ЗНАЧЕНИЯ элемента, мне в spinner попадает имя столбца COLUMN_LNAME, а не его значения. заранее благодарен

Java
1
2
3
4
5
6
7
8
9
10
db = sqlHelper.getReadableDatabase();
            userCursor = db.rawQuery("select * from " + DatabaseHelper.TABLE, null);
            String[] headers = new String[]{DatabaseHelper.COLUMN_LNAME};
 
            Spinner spinner = (Spinner) rootView.findViewById(R.id.spinner_authors);
            // заголовок
            spinner.setPrompt("Choose the list");
            ArrayAdapter<String> LTRadapter = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_spinner_item, headers);
            LTRadapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
            spinner.setAdapter(LTRadapter);
0
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
17.08.2015, 16:04 5
Лучший ответ Сообщение было отмечено RayPas как решение

Решение

headers циклом по записям курсора надо заполнить значениями
1
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
17.08.2015, 17:53  [ТС] 6
Rube,
Java
1
2
3
4
5
6
7
String[] headers = new String[]{DatabaseHelper.COLUMN_LNAME};
            for (int i=0; i<userCursor.getCount();i++) {
              headers[i] = String.valueOf(userCursor.getColumnCount());
            }
                ArrayAdapter<String> LTRadapter = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_spinner_item, headers);
                LTRadapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
                spinner.setAdapter(LTRadapter);
выдаетошибку
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
at com.example.scinolib2.AddBookActivity$PlaceholderFragment.onCreateView(AddBookAc tivity.java:119)
0
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
17.08.2015, 18:07 7
Вместо
Java
1
String[] headers = new String[]{DatabaseHelper.COLUMN_LNAME};
напиши
Java
1
String[] headers = new String[userCursor.getCount()];
0
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
17.08.2015, 18:12  [ТС] 8
Mikalai, Caused by: java.lang.ArrayIndexOutOfBoundsException: length=3; index=3
такая ошибка в теле цикле теперь

Добавлено через 2 минуты
Mikalai, и каким образом я сообщу какие именно столбцы мне нужны
0
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
17.08.2015, 18:30 9
Массив headers будет отображаться в твоём spinner. В цикле тебе нужно достать из курсора нужные элементы и вставить в массив, как я понял.
0
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
17.08.2015, 18:34  [ТС] 10
Mikalai, цикл один раз выполняется и вылетает с ошибкой, хотя в соunt правильно считает элементы
0
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
17.08.2015, 18:44 11
покажи весь код, ошибку и сроку пометь где она появляется
0
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
17.08.2015, 18:54  [ТС] 12
Mikalai, цикл один раз выполняется и вылетает с ошибкой, хотя в соunt правильно считает элементыMikalai,

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Spinner spinner = (Spinner) rootView.findViewById(R.id.spinner_authors);
            // заголовок
            spinner.setPrompt("Choose the list");
            db = sqlHelper.getReadableDatabase();
            userCursor = db.rawQuery("select * from " + DatabaseHelper.TABLE,null);
            String[] headers = new String[]{DatabaseHelper.COLUMN_LNAME};
 
            String[] h = new String[]{};
            for (int i=0; i<=userCursor.getCount();i++) {
                h[i] = String.valueOf(userCursor.getCount());
            }
                ArrayAdapter<String> LTRadapter = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_spinner_item, h);
                LTRadapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
                spinner.setAdapter(LTRadapter);
ошибка СТРОКА 10
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
at com.example.scinolib2.AddBookActivity$PlaceholderFragment.onCreateView(AddBookAc tivity.java:121)
0
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
17.08.2015, 19:08 13
ты же создаешь массив без элементов, а обращаться пытаешься к его элементу с индексом 0.
0
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
17.08.2015, 19:11  [ТС] 14
Mikalai,
Java
1
2
3
4
5
6
7
8
9
userCursor = db.rawQuery("select * from " + DatabaseHelper.TABLE, null);
            String[] headers = new String[]{DatabaseHelper.COLUMN_LNAME};
 
            for (int i=0; i<=userCursor.getCount();i++) {
                headers[i] = String.valueOf(userCursor.getCount());
            }
                ArrayAdapter<String> LTRadapter = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_spinner_item, headers);
                LTRadapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
                spinner.setAdapter(LTRadapter);
ошибка та же на той же строке
0
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
17.08.2015, 19:17 15
ошибка та же, но пишет там наверное - java.lang.ArrayIndexOutOfBoundsException: length=1; index=1

Объясни нормально, что ты хочешь достать из базы и засунуть в спинер? это строки или числа? Как называется КОЛОНКА из которой ты хочешь достать информацию.
0
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
17.08.2015, 19:21  [ТС] 16
Mikalai, я хочу достать значения из таблицы TABLE столбца COLUMN_LNAME, это строки.
0
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
17.08.2015, 19:29 17
Вот так попробуй
Java
1
2
3
4
5
String[] headers = new String[userCursor.getCount()];
 
        for (int i=0; i < userCursor.getCount();i++) {
            headers[i] = userCursor.getString(userCursor.getColumnIndex(DatabaseHelper.COLUMN_LNAME));
        }
0
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
17.08.2015, 19:32  [ТС] 18
Mikalai,сдвиги есть, но пишет такую ошибку
Caused by: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 4

на теле цикла выкидывает опять
0
266 / 242 / 96
Регистрация: 11.01.2015
Сообщений: 673
17.08.2015, 19:39 19
Лучший ответ Сообщение было отмечено RayPas как решение

Решение

Я уже сам не соображаю какую чушь пишу )))
Вот так примерно нужно:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
userCursor = db.rawQuery("select * from " + DatabaseHelper.TABLE, null);
 
            List<String> headers = new ArrayList<>();
            if (userCursor != null) {
                if (userCursor.moveToFirst()) {
                    do {
                        String string = userCursor.getString(userCursor.getColumnIndex(DatabaseHelper.COLUMN_LNAME));
                        headers.add(string);
                    } while (userCursor.moveToNext());
                }
            } else {
                return;
            }
 
        ArrayAdapter<String> LTRadapter = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_spinner_item, headers);
        LTRadapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
        spinner.setAdapter(LTRadapter);
1
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 370
17.08.2015, 19:55  [ТС] 20
Mikalai, огромное спасибо, что не бросили!!))))
правда return убрал, с ним не работало)
0
17.08.2015, 19:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.08.2015, 19:55
Помогаю со студенческими работами здесь

Связывание таблиц
Итак возникла такая проблема,нужно связать таблицы mysql. Расскажу подробно. Есть таблицы...

Связывание таблиц
Здравствуйте!Подскажите, правильно ли связал таблицы в примере? И насущный вопрос...Как избавится...

Связывание таблиц
Добрый день всем, прошу помочь, пишу программу на Делфи (учет товара). Так вот на первой форме у...

Связывание таблиц БД
Имеется 2 таблицы: Заказы(поля- номер заказа, наименование продукта, цена) и продавцы(поля- номер...

Связывание таблиц
Здравствуйте. Возникла необходимость спроектировать БД в MS SQL, поскольку только начал знакомится...

связывание таблиц
На форме имеется DBCombobox который отображает данные из базы (таблицы customer). Код: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru