Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовой проект(Антипов) .doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.51 Mб
Скачать

Глава 5. Построение инфологической (концептуальной) модели связи между

таблицами.

При составлении запросов для главной страницы сайта, нам необходимо учитывать, как таблицы будут связаны между собой. Для этого еще вначале разработки БД мы должны представлять связи между таблицами нашей базы данных. В качестве ключевых полей в своей Овощебазе, я использую уникальные id для связи таблиц между собой.

Рисунок 7 Связи между таблицами

Используя ключевые поля и данные в таблицах (рис 7), я написал запрос для отображения только необходимых для вывода данных.

Глава 6. Создание запросов для подключения к базе данных через php код и sql запросов.

Запросы для test 1 и test2 записываются в первом index.php, тоесть

на главной веб странице интерфейса пользователя.

Запрос для test1 - генерируем первый набор ссылок

<?php

Соединяемся, выбираем базу данных

$link = mysql_connect('localhost', 'tanks', '1234')

or die('Не удалось соединиться: ' . mysql_error());

mysql_select_db('tanks') or die('Не удалось выбрать базу данных');

// Выполняем SQL-запрос для всех стран

$query = 'SELECT * FROM strana';

$result = mysql_query($query) or die('Запрос не удался: ' . mysql_error());

while ($stroka = mysql_fetch_array($result, MYSQL_ASSOC)) {

// для каждого поставщика печатаем ссылку

print("\t\t\t\t<a href='/test1/?idproizvod=$stroka[id_proizvoditel]' class='small button'>$stroka[id]</a>\n") ;

}

?>

Запрос для test2 - генерируем второй ссылок для

<?php

$link = mysql_connect('localhost', 'tanks', '1234')

or die('Не удалось соединиться: ' . mysql_error());

mysql_select_db('tanks') or die('Не удалось выбрать базу данных');

// Выполняем SQL-запрос для всех типов

$query = 'SELECT * FROM tip';

$result = mysql_query($query) or die('Запрос не удался: ' . mysql_error());

while ($stroka = mysql_fetch_array($result, MYSQL_ASSOC))

print("\t\t\t\t<a href='/test2/?id_tip=$stroka[id]' class='small button'>$stroka[tip_tanka]</a>\n") ;

}

?>

После всего этого нам нужно сделать запросы на выборку данных для каждого из index.php находящихся в папках test1 и test2, для этого в каждом из них сделаем запросы на выборку из базы данных.

Составим в php коде запрос на выборку данных для test1:

<?php

print("<h3>Информация о поставщике:</h3>");

//print_r($_GET);

if(!isset($_GET['strana_id'])) {

die("Не могу прочитать GET переменную idproizvod.");

}

// Соединяемся, выбираем базу данных

$link = mysql_connect('localhost', 'tanks', '1234')

or die('Не удалось соединиться: ' . mysql_error());

mysql_select_db('tanks') or die('Не удалось выбрать базу данных');

// Выполняем SQL-запрос

$query = "SELECT s.proizvoditel, te.model, ti.tip_tanka, te.mohnost_dvigatelya, te.max_scorost, te.bronya_bahni, te.bronya_korpusa, te.boezapas, te.ekipage, te.nalichie

FROM tip AS ti, strana AS s, tehnika AS te

WHERE s.id = te.id_proizvoditel

AND ti.id = te.id_typa

AND s.id = $_GET[strana_id]";

$result = mysql_query($query) or die('Запрос не удался: ' . mysql_error());

?>

<table border="1">

<tr>

<th>Производитель</th>

<th>Модель</th>

<th>Тип</th>

<th>Мощность двигателя (л/с)</th>

<th>Максимальная скорость (км/ч)</th>

<th>Бронирование башни (мм)</th>

<th>Бронирование Корпуса(мм)</th>

<th>Количество снарядов (шт)</th>

<th>Экипаж (кол-во чел)</th>

<th>Имеется на базе (шт)</th>

</tr>

</div>

<?php

while ($stroka = mysql_fetch_array($result, MYSQL_ASSOC)) {

print("<tr>\n");

foreach ($stroka as $kluch => $znachenie) {

print("\t<td>$znachenie</td>\n");

}

print("</tr>\n");

}

?>

Данный php код не только выполняет запрос , но и создаёт таблицу.

Теперь составим запрос на выборку данных для test2:

<?php

print("<h3>Информация о поставщике:</h3>");

//print_r($_GET);

if(!isset($_GET['id_tip'])) {

die("Не могу прочитать GET переменную id_tip.");

}

// Соединяемся, выбираем базу данных

$link = mysql_connect('localhost', 'tanks', '1234')

or die('Не удалось соединиться: ' . mysql_error());

mysql_select_db('tanks') or die('Не удалось выбрать базу данных');

// Выполняем SQL-запрос

$query = "SELECT ti.tip_tanka, te.model, s.proizvoditel, te.mohnost_dvigatelya, te.max_scorost, te.bronya_bahni, te.bronya_korpusa, te.boezapas, te.ekipage, te.nalichie

FROM tip AS ti, strana AS s, tehnika AS te

WHERE s.id = te.id_proizvoditel

AND ti.id = te.id_typa

AND ti.id = $_GET[id_tip]";

$result = mysql_query($query) or die('Запрос не удался: ' . mysql_error());

?>

<table border="1">

<tr>

<th>Тип</th>

<th>Модель</th>

<th>Производитель</th>

<th>Мощность двигателя (л/с)</th>

<th>Максимальная скорость (км/ч)</th>

<th>Бронирование башни (мм)</th>

<th>Бронирование Корпуса (мм)</th>

<th>Количество снарядов (шт)</th>

<th>Экипаж (кол-во чел)</th>

<th>Имеется на базе (шт)</th>

</tr>

</div>

<?php

while ($stroka = mysql_fetch_array($result, MYSQL_ASSOC)) {

print("<tr>\n");

foreach ($stroka as $kluch => $znachenie) {

print("\t<td>$znachenie</td>\n");

}

print("</tr>\n");

}

?>