• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите с привязкой двух БД

  • Автор темы Автор темы Ragnos
  • Дата начала Дата начала

Ragnos

Новые
Регистрация
23 Дек 2011
Сообщения
23
Реакции
0
Баллы
0
Помогите с привязкой двух БД

Здравствуйте, у меня такая задача: нужно сделать телефонный справочник


Мне нужно создать в нём выпадающее меню городов, чтоб было так: выбрал город допустим Москву, и в другой форме ввёл например фамилию человека, нажал на поиск и чтоб поиск шёл только из БД именно Москвы.

Точно также и с другими городами, допустим выбрал Казань, ввёл фамилию и чтоб поиск производился уже БД казани.

Я думал что должно это так делаться, создать БД в DENWER, и в этой БД создать, таблицы с данными для городов, допустим одну таблицу назвать Москва, и когда в форме выбираеш москву чтоб поиск шёл только в этой таблице, допустим чтоб фамилии Петров искал только в этой таблице. И также для других городов создать отдельные таблицы.


Помогите пожалуйста, как можно такое реализовать, если выше описанные действия совсем неправильны, подскажите как можно проделать это правильно но с таким же результатом
 
1) планируется использовать mysql?
2) на каком языке программирование хотите решить данную задачу?
3) плодить столько бд это расточительство...
 
1) Да на mysql
2) на php
3) тогда как можно удобнее сделать это?
 
можно попробовать в одной базе создать отдельные таблицы для каждого города и обращаться к ним по названию, что-то типа $name_table$ или подобного. Более подробно, к сожалению, не распишу.
 
Вот что я наваял)))

создайте базу данных sp

и выполните скрипт
Код:
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- База данных: `sp`
--
USE`sp`;
-- --------------------------------------------------------

--
-- Структура таблицы `spravochnik`
--
CREATE TABLE IF NOT EXISTS `spravochnik` (
  `city` varchar(40) NOT NULL,
  `surename` varchar(40) NOT NULL,
  `name` varchar(40) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Дамп данных таблицы `spravochnik`
--

INSERT INTO `spravochnik` (`city`, `surename`, `name`) VALUES
('Москва', 'Иванов', 'Алексей'),
('Москва', 'Сидоров', 'Владислав'),
('Москва', 'Сидоров', 'Ярослав'),
('Петербург', 'Гаврилов', 'Тарас'),
('Петербург', 'Гаврилов', 'Тарас'),
('Орловщина', 'Федеров', 'Михаил');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
это можно выполнить к примеру в phpmyadmin или dbforge(кажись) или в любом другом клиенте для работы с mysql

далее серверный код(он тут без защиты...)
PHP:
<?php
 print "</h1>Справочник России <br /><br /></h1>";
    $p = mysql_connect("localhost","/*Укажите имя юзера для подключения к бд*/","пароль") or die("Ошибка подключения к mysql");
    $bd = mysql_select_db("sp") or die("Ошибка выбора бд");
    $city = $_GET['city'];
    $surname = $_GET['surname'];
    $query = "SELECT name FROM spravochnik WHERE city='$city' AND surename='$surname'";
    print $query;
    mysql_set_charset("utf8");
    $result = mysql_query($query);
    $count = mysql_num_rows($result);
    print $count;
    for ($i=0; $i < $count; $i++){
      $name = mysql_fetch_array($result);
      echo $name['name'] . "<br />";
    }
?>
ну и клиент
HTML:
 <html>
  <head>
    <title></title>
  </head>
  <body>
    <p>
    <form name="data" action="unit2.php" method="GET">
      <table border="0" cellspacing="1" cellpadding="1" width="256" height="61">
        <tbody>
          <tr height="31">
            <td>Город:</td>
            <td width="154"><input tabindex="1" name="city" alt="Город" maxlength="40" /></td>
            <td> </td>
          </tr>
          <tr height="23">
            <td>Фамилия</td>
            <td width="154"><input tabindex="2" name="surname" alt="Фамилия" maxlength="40" /></td>
            <td><input tabindex="3" name="send" maxlength="1" value="Поиск" type="submit" /></td>
          </tr>
        </tbody>
      </table>
    </p>
  </body>
</html>

если что не понятно:tehnari_ru_102: спрашивайте)))
 
создайте базу данных sp

и выполните скрипт

Вот как раз этого я и не понимаю, как именно выполнить скрипт, тобиш незнаю куда нажимать, где и как прописывать в DENWER, можете обьяснить?
 
в браузере набираете http://localhost/Tools/phpMyAdmin/
а дальше смотрите мануал, а то писать много... (хотя там вроде интуитивно понятно что делать...) сравнение в бд выбрать utf8_general_ci
 
Нет нет, базу я знаю как создать, а вот что значит выполнить скрипт как это сделать, хотя бы в кратце можно объяснить плиз. Что мне сделать с кодом который после слов

Вот что я наваял)))

создайте базу данных sp

и выполните скрипт

Вот его я не пойму куда девать?
 
в phpmyadmin выбираете созданную бд и в меню должна быть что-то типа sql или "создать sql" "создать sql запрос" ... появится текстовое поле туда и вставляете.

ели сохраните в файле (!!! обязательно в utf8) и выполните импорт...
 
Спасибо, сделал как написали, но когда ввожу город и фамилию, показывает вот это

Справочник России

SELECT name FROM spravochnik WHERE city='Москва' AND surename='Иванов'0

Хотя все параметры указал нужные: базу, пользователя, таблицу.


Скажите а как можно сделать так: вот я создам три таблицы (москва, питер, воронеж), в них естественно данные о людях этих городов.

И как вот сделать выпадающий список, допустим выбрал из списка москву, и чтоб php понял что выбрана в mysql таблица Москвы и что поиск по введённой фамилии осуществлять нужно только в этой таблице

Вот так как то чтоб получилось, можете объяснить как так сделать.
 
удалите print $query;
и
print $count;

p.s странно... надо будет посмотреть что не так.
А бд создали с каким сравнением?(нужно utf8_general_ci)
У меня сейчас идут зачеты. так что помочь смогу наверное только с 28

 
Ок, буду ждать, если сам не справлюсь)
 
Там я так понял нужно использовать функцию или оператор не знаю как правильно IF

Типа: если(if) в запросе выбрана москва, то искать (select) в москве фамилию.

только вот незнаю как форму выпадающего списка связать с этим кодом, что нужно прописать вначале кода
 
Назад
Сверху