Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Помогите с привязкой двух БД (http://www.tehnari.ru/f41/t61652/)

Ragnos 23.12.2011 16:27

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


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

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

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


Помогите пожалуйста, как можно такое реализовать, если выше описанные действия совсем неправильны, подскажите как можно проделать это правильно но с таким же результатом

kreol 23.12.2011 19:25

1) планируется использовать mysql?
2) на каком языке программирование хотите решить данную задачу?
3) плодить столько бд это расточительство...

Ragnos 23.12.2011 20:41

1) Да на mysql
2) на php
3) тогда как можно удобнее сделать это?

AlexZir 23.12.2011 21:37

можно попробовать в одной базе создать отдельные таблицы для каждого города и обращаться к ним по названию, что-то типа $name_table$ или подобного. Более подробно, к сожалению, не распишу.

kreol 24.12.2011 03:08

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

создайте базу данных 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>&nbsp;</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: спрашивайте)))

Ragnos 24.12.2011 12:20

Цитата:

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

и выполните скрипт
Вот как раз этого я и не понимаю, как именно выполнить скрипт, тобиш незнаю куда нажимать, где и как прописывать в DENWER, можете обьяснить?

kreol 24.12.2011 14:56

в браузере набираете http://localhost/Tools/phpMyAdmin/
а дальше смотрите мануал, а то писать много... (хотя там вроде интуитивно понятно что делать...) сравнение в бд выбрать utf8_general_ci

Ragnos 24.12.2011 16:09

Нет нет, базу я знаю как создать, а вот что значит выполнить скрипт как это сделать, хотя бы в кратце можно объяснить плиз. Что мне сделать с кодом который после слов

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

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

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

Вот его я не пойму куда девать?

kreol 24.12.2011 18:05

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

ели сохраните в файле (!!! обязательно в utf8) и выполните импорт...

Ragnos 25.12.2011 07:37

Спасибо, сделал как написали, но когда ввожу город и фамилию, показывает вот это

Цитата:

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

SELECT name FROM spravochnik WHERE city='Москва' AND surename='Иванов'0
Хотя все параметры указал нужные: базу, пользователя, таблицу.


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

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

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


Часовой пояс GMT +4, время: 20:53.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.