Тема: Несколько баз данных
Здравствуйте. Скажите пожалуйста, можно ли использовать несколько баз данных в одном проекте. Если это возможно, как из joomla сделать к новой базе запрос.
PhpMyAdmin 2.6.1
Joomla! 1.5.14
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форум PHP-MyAdmin.RU → Работа с phpMyAdmin → Несколько баз данных
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Здравствуйте. Скажите пожалуйста, можно ли использовать несколько баз данных в одном проекте. Если это возможно, как из joomla сделать к новой базе запрос.
PhpMyAdmin 2.6.1
Joomla! 1.5.14
Dimazzz
Обычно один скрипт может работать только с одной базой данных. Если скриптов несколько, то баз данных может быть столько, сколько скриптов.
Извините если не по теме, но такая проблема. Помогаю делать диплом по созданию сайт. Сайт сделали, но надо создать базу данных успеваемости. ID; FIO; Predmet; Ocenka. Что бы к ней можно было обращаться по фамилии(FIO) и на выходе получать оценку по определенному предмету. Сайт делали на joomla.
Системная информация:
Joomla 1.5.14 Stable [ Wojmamni Ama Naiki ]
Пакет Denwer
phpMyAdmin 2.6.1
Весь гугл перелопатил, практически ничего не нашел. Подскажите хотя бы в какую сторону двигаться. Диплом ГОРИТ!
Заранее благодарю.
Dimazzz
Создайте таблицу успеваемости в той же базе данных, что и Joomla. Как делать модуль в Joomla я не знаю, но можно посмотреть как сделаны похожие и что-то скопировать, что-то переделать. По сути, надо сделать обычный скрипт выборки данных из БД и встроить его в дизайн Joomla.
Большое спасибо. У меня вопрос, а скрипт выборки данных, это получается то же самое что и sql запрос.Верно?
Dimazzz
Не совсем. Скрипт надо будет написать на PHP и уже с его помощью необходимо выполнить выборку данных из таблицы SQL запросом.
Спасибо. Где найти инфу по созданию скрипта выборки данных, может есть где готовые.
Dimazzz
На счет готовых скриптов даже не знаю, вряд ли можно что-то подобное найти.
Если делать не в Joomla, то так:
1) Создаем в БД таблицу (например test_table) с полями ID; FIO; Predmet; Ocenka. Заполняем таблицу данными.
2) Делаем скрипт выборки по полю FIO.
Сперва форма.
<form action="" method="post">
<input type="text" name="fio" />
<input type="submit" value="Искать" />
</form>
Выводим данные:
if (!empty($_POST['fio'])) {
$sql = 'SELECT * FROM `test_table` WHERE `FIO` = "' . $_POST['fio'] . '"';
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)) {
print 'ID: ' . $row['ID'] . ', FIO: ' . $row['FIO'] . ', Predmet: ' . $row['Predmet'] . ', Ocenka: ' . $row['Ocenka'] . '<br />';
}
}
Выше в коде необходимо прописать подключение к базе данных.
$link = mysql_connect('localhost', 'user_name', 'password');
mysql_select_db('db_name');
Как все это встроить в Joomla, я не знаю, но здесь показано как собрать страничку с текстовым полем и кнопкой.
Примерно ясно. Так созданный скрипт надо вставлять в joomla или может какими другими альтернативными средствами его использовать.
Спасибо, со вставкой скрипта разобрался. Есть модуля оказывается для joomla специальные. Вот еще такой вопрос: как мне сделать связь двух таблиц на уровне phpmyadmin, какой запрос выполнить, что бы можно было к ним обращаться с админки.
Поля первой табл.: ID, FIO, Klass, ID_Predmet, Ocenka
поля второй: ID_Predmet, Predmet
Буду ооочень признателен!
Dimazzz
Связь создается на уровне SQL запроса. В вашем случае запрос будет такой:
SELECT `table_1`.*, `table_2`.`Predmet`
FROM `table_1` INNER JOIN `table_2` ON `table_1`.`ID_Predmet` = `table_2`.`ID_Predmet`
WHERE ... /* Далее условие выборки */
Таким запросом получаем кроме 5 полей из первой таблицы, еще одно поле из второй, связывая обе таблицы по значению поля ID_Predmet.
Попробуйте составить такой запрос и выполнить его в phpMyAdmin, чтобы увидеть результат и уже затем, если не будет ошибок, вставить его в скрипт.
Спасибо. Попробую.
Извините, но я решил немного по другому составить таблицы. Допустим у нас есть n-кол-во классов.
Создаем таблицы (Klass1; Klass2; Klass3 и т. д.) отдельно для каждого класса по полям: id; FIO; Klass; Predmet(где предметы будут введены в полях в зависимости от класса). И уже из созданных таблиц делаем выборку по заданной фамилии, что бы получить на выходе класс и предметы с уже выставленными оценками.
Вот теперь у меня еще такой вопрос. В данной случае надо ли объединить все таблицы? И как это сделать? Может лучше создать еще одну таблицу по классам?
Ведь по запросу в форме поиска мы будем задавать фамилию и система будет просматривать по всем таблицам klass.
Помогите. Уже не знаю даже куда обращаться, все молчат блин. Только у вас толковые советы:).
Dimazzz
Думаю можно сделать две таблицы: fio - содержит поля id и fio; и main - содержит поля id, fio_id, klass, predmet, ocenka.
В этом случае для поиска по имени можно использовать следующий запрос:
SELECT `main`.*, `fio`.`fio`
FROM `fio` INNER JOIN `main` ON `fio`.`id` = `main`.`fio_id`
WHERE `fio`.`fio` LIKE "имя";
Что то мне немного не понятно, зачем для fio создавать отдельную таблицу? Ккак же мне сделать объединение таблиц klass, вот это меня больше всего интерисует, и вообще надо ли это в моем случае.
Мне все таки кажется, что таблица fio не очень необходима, ведь у меня таблицы будут по отдельным классам. Хотя и там могут быть
повторения:).
Dimazzz
Чтобы построить структуру таблиц надо четко понимать их взаимосвязь. Я необходимые вам связи не понимаю и предлагаю пример решения, вы должны продумать эти связи и создать таблицы и их структуры по примерно следующей логике:
1) Какие данные надо выводить?
2) Какие данные надо хранить в БД?
3) Если есть несколько строк принадлежат одному пользователю, то его данные (имя, фамилия) лучше вывести в отдельную таблицу, чтобы при вставке данных не вбивать постоянно имя и фамилию. Поле fio здесь дано, как пример. Этот принцип необходимо применить ко всем данным.
Уважаемый Hanut
Я думаю что будет такая довольно не сложная структура.
На примере первого класса таблицы jos_1klass
1) Вывод данных по вводу фамилии из таблицы:FIO,Klass,Obgr,Pis,Fiz,Mat,Okr,Tech,Muz. Где в поле класс будет размещаться выпадающий список с классами и след. поля, это названия предметов с оценками в таблице.
2) В базе данных мы храним инфу. по каждому классу в отдельных таблицах.
Ну как то вот так.
Как это реализовать в joomla я разобрался. Как построить sql запрос к таблице jos_1klass по заданной пользователем строке, в данном случае по вводу FIO? Может использовать цикл?
Dimazzz
Запрос будет самым простым:
SELECT * FROM `jos_1klass` WHERE `FIO` = "имя";
Hanut
Спасибо
Hanut
Извините, при запросе выдает:
1. [ SELECT * FROM `jos_1klass` WHERE `FIO` = "имя" ], rows: 0
Вы создали структуру таблицы jos_1klass и ввели в нее данные (если создали, то покажите)? Среди данных есть запись со строкой "имя" в поле FIO?
Структура таблицы создана, запрос по определенному FIO выдает. Я такой запрос выполнял раньше и получал данный по строке. Но как сделать так, что бы пользователь вводил фамилию и получал результат? Может циклом реализовать?
Dimazzz
Не понимаю в чем у вас затруднение. Покажите как делаете вывод.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форум PHP-MyAdmin.RU → Работа с phpMyAdmin → Несколько баз данных
Форум работает на PunBB, при поддержке Informer Technologies, Inc
Currently installed 7 official extensions. Copyright © 2003–2009 PunBB.