Инфоурок Другое Другие методич. материалыМетодические указания по созданию базы данных в MySQL , по работе с базой данных посредством языка php

Методические указания по созданию базы данных в MySQL , по работе с базой данных посредством языка php

Скачать материал

Практическая работа №

 

Тема: Создание базы данных в MySQL.
Цель: Получить навык в создании базы данных, используя phpMyAdmin.
Программное обеспечение:

Для выполнения лабораторной работы необходимо следующее ПО:

1.                 Текстовый редактор: Блокнот или Notepad++.

2.                 Программа для просмотра web-страниц – любой современный браузер (GoogleChrome, Mozilla FireFox).

3.                 Виртуальный сервер Denwer.

4.                 Графический редактор MS Visio.

Задание:

1.                 Создайте концептуальную модель при помощи редактора MSVisio (в соответствии с номером варианта выберите предметную область, концептуальную модель ограничить 3-4 сущностями).

№варианта

Наименование предметной области

1

Покупка билетов в кино

2

Оказание платных типографических услуг

3

Продажа комнатных растений

4

Оформление штрафов за нарушение правил дорожного движения

5

Электронная библиотека

6

Учет детей в детском саду

7

Учет потребления электроэнергии физическими лицами

8

Аренда торговых площадей в торговом центре

 

2.                 Создайте структуру базы данных в соответствии с концептуальной моделью при помощи phpMyAdmin (смотрите указания к выполнению и теоретические основы).

3.                 Заполните базу данными (по 10 записей).

Отчет:

Отчет о выполнении лабораторной работы должен содержать следующие разделы:

1. Тему, цель, задание.

2. Ход работы: концептуальная модель в гибридной нотации Питера Чена и Мартина, скриншот выполняемых действий и их описание, скриншот физической модели БД.

3. Вывод о выполненной работе.

Защита

Защита лабораторной работы осуществляется на следующем лабораторном занятии. Для защиты необходимо предоставить отчет о выполненной лабораторной работе и продемонстрировать созданную БД.

Студент допускается к защите ТОЛЬКО ПРИ НАЛИЧИИ отчета и знании теоретического материала, размещенного в методических указаниях.

Теоретические основы

Типы данных в MySQL

MySQL поддерживает несколько типов столбцов, которые можно разделить на три категории: числовые типы данных, типы данных для хранения даты и времени и символьные (строковые) типы данных. В данном разделе вначале дается обзор всех возможных типов и приводятся требования по хранению для каждого типа столбца, затем свойства типов описываются более подробно по каждой категории. Мы намеренно сделали обзор кратким, поскольку более детальные описания требуют дополнительной информации о конкретных типах столбцов, например, о допустимых форматах представления величин.

Ниже перечислены типы столбцов, поддерживаемые MySQL. В описаниях используются следующие обозначения:

M

Указывает максимальный размер вывода. Максимально допустимый размер вывода составляет 255 символов.

D

Употребляется для типов данных с плавающей точкой и указывает количество разрядов, следующих за десятичной точкой. Максимально возможная величина составляет 30 разрядов, но не может быть больше, чем M-2.

Квадратные скобки (`[' и `]') указывают для типа данных группы необязательных признаков.

Заметьте, что если для столбца указать параметр ZEROFILL, то MySQL будет автоматически добавлять в этот столбец атрибут UNSIGNED.

TINYINT[(M)] [UNSIGNED] [ZEROFILL]

Очень малое целое число. Диапазон со знаком от -128 до 127. Диапазон без знака от 0 до 255.

BIT

BOOL

Являются синонимами для TINYINT(1).

SMALLINT[(M)] [UNSIGNED] [ZEROFILL]

Малое целое число. Диапазон со знаком от -32768 до 32767. Диапазон без знака от 0 до 65535.

MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]

Целое число среднего размера. Диапазон со знаком от -8388608 до 8388607. Диапазон без знака от 0 до 16777215.

INT[(M)] [UNSIGNED] [ZEROFILL]

Целое число нормального размера. Диапазон со знаком от -2147483648 до 2147483647. Диапазон без знака от 0 до 4294967295.

INTEGER[(M)] [UNSIGNED] [ZEROFILL]

Синоним для INT.

BIGINT[(M)] [UNSIGNED] [ZEROFILL]

Большое целое число. Диапазон со знаком от -9223372036854775808 до 9223372036854775807. Диапазон без знака от 0 до18446744073709551615. Для столбцов типа BIGINT необходимо учитывать некоторые особенности:

·                     Все арифметические операции выполняются с использованием значений BIGINT или DOUBLE со знаком, так что не следует использовать беззнаковые целые числа больше чем 9223372036854775807 (63 бита), кроме операций, выполняемых логическими функциями. В противном случае несколько последних разрядов результата могут оказаться ошибочными из-за ошибок округления при преобразовании BIGINT в DOUBLE. MySQL 4.0 может обрабатывать данные типа BIGINT в следующих случаях:

o         Использование целых чисел для хранения больших беззнаковых величин в столбце с типом BIGINT.

o         В случаях MIN(big_int_column) и MAX(big_int_column).

o         При использовании операторов (`+', `-', `*' и т.д.), когда оба операнда являются целыми числами.

·                     Точное значение целого числа всегда можно хранить в столбце с типом BIGINT в виде строки. В этом случае MySQL выполнит преобразование строки в число без промежуточного преобразования.

·                     Если оба аргумента являются целочисленными величинами, то при выполнении над ними операций `-', `+', и `*' будут использоваться правила BIGINT-арифметики. Это означает, что при умножении двух больших целых чисел (или результатов вычислений функций, возвращающих целые числа) результат операции может оказаться непредсказуемым, если он превосходит значение 9223372036854775807.

FLOAT(точность) [UNSIGNED] [ZEROFILL]

Число с плавающей точкой. Атрибут точности может иметь значение <=24 для числа с плавающей точкой обычной (одинарной) точности и между 25 и 53 - для числа с плавающей точкой удвоенной точности. Эти типы данных сходны с типами FLOAT и DOUBLE, описанными ниже.FLOAT(X) относится к тому же интервалу, что и соответствующие типы FLOAT и DOUBLE, но диапазон значений и количество десятичных знаков не определены. В версии MySQL 3.23 это истинная величина числа с плавающей точкой. В более ранних версиях MySQL тип данныхFLOAT(точность) всегда имеет два десятичных знака. Следует отметить, что использование типа данных FLOAT может привести к неожиданным проблемам, так как все вычисления в MySQL выполняются с удвоенной точностью.

FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]

Малое число с плавающей точкой обычной точности. Допустимые значения: от -3,402823466E+38 до -1,175494351E-38, 0, и от1,175494351E-38 до 3,402823466E+38. Если указан атрибут UNSIGNED, отрицательные значения недопустимы. Атрибут M указывает количество выводимых пользователю знаков, а атрибут D - количество разрядов, следующих за десятичной точкой. Обозначение FLOAT без указания аргументов или запись вида FLOAT(X), где X <=24 справедливы для числа с плавающей точкой обычной точности.

DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]

Число с плавающей точкой удвоенной точности нормального размера. Допустимые значения: от -1,7976931348623157E+308 до-2,2250738585072014E-308, 0, и от 2,2250738585072014E-308 до 1,7976931348623157E+308. Если указан атрибут UNSIGNED, отрицательные значения недопустимы. Атрибут M указывает количество выводимых пользователю знаков, а атрибут D - количество разрядов, следующих за десятичной точкой. Обозначение DOUBLE без указания аргументов или запись вида FLOAT(X), где 25 <= X <= 53справедливы для числа с плавающей точкой двойной точности.

DOUBLE PRECISION[(M,D)] [UNSIGNED] [ZEROFILL]

REAL[(M,D)] [UNSIGNED] [ZEROFILL]

Данные обозначения являются синонимами для DOUBLE.

DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]

``Неупакованное'' число с плавающей точкой. Ведет себя подобно столбцу CHAR, содержащему цифровое значение. Термин ``неупакованное'' означает, что число хранится в виде строки и при этом для каждого десятичного знака используется один символ. Разделительный знак десятичных разрядов, а также знак `-' для отрицательных чисел не учитываются в M (но место для них зарезервировано). Если атрибут D равен 0, величины будут представлены без десятичного знака, т.е. без дробной части. Максимальный интервал значений типа DECIMAL тот же, что и для типа DOUBLE, но действительный интервал для конкретного столбца DECIMAL может быть ограничен выбором значений атрибутов M и D. Если указан атрибут UNSIGNED, отрицательные значения недопустимы. Если атрибут D не указан, его значение по умолчанию равно 0. Если не указан M, его значение по умолчанию равно 10. В более ранних, чем MySQL 3.23, версиях аргумент M должен содержать в себе место для знака числа и десятичного знака.

DEC[(M[,D])] [UNSIGNED] [ZEROFILL]

NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL]

Данные обозначения являются синонимами для DECIMAL.

DATE

Дата. Поддерживается интервал от '1000-01-01' до '9999-12-31'. MySQL выводит значения DATE в формате 'YYYY-MM-DD', но можно установить значения в столбец DATE, используя как строки, так и числа.

DATETIME

Комбинация даты и времени. Поддерживается интервал от '1000-01-01 00:00:00' до '9999-12-31 23:59:59'. MySQL выводит значенияDATETIME в формате 'YYYY-MM-DD HH:MM:SS', но можно устанавливать значения в столбце DATETIME, используя как строки, так и числа.

TIMESTAMP[(M)]

Временная метка. Интервал от '1970-01-01 00:00:00' до некоторого значения времени в 2037 году. MySQL выводит значения TIMESTAMP в форматах YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD или YYMMDD в зависимости от значений M: 14 (или отсутствующее), 12, 8, или 6; но можно также устанавливать значения в столбце TIMESTAMP, используя как строки, так и числа. Столбец TIMESTAMP полезен для записи даты и времени при выполнении операций INSERT или UPDATE, так как при этом автоматически вносятся значения даты и времени самой последней операции, если эти величины не введены программой. Можно также устанавливать текущее значение даты и времени, задавая значение NULL. Аргумент M влияет только на способ вывода столбца TIMESTAMP; для хранения его значений всегда используется 4 байта. Следует учитывать, что столбцы TIMESTAMP(M), где M равно 8 или 14, представляют собой числа, в то время, как столбцы TIMESTAMP(M) с иным значением аргумента M являются строками. Это убеждает, что можно надежно сделать дамп и восстановить таблицу с этими типами столбцов!

TIME

Время. Интервал от '-838:59:59' до '838:59:59'. MySQL выводит значения TIME в формате 'HH:MM:SS', но можно устанавливать значения в столбце TIME, используя как строки, так и числа.

YEAR[(2|4)]

Год в двухзначном или четырехзначном форматах (по умолчанию формат четырехзначный). Допустимы следующие значения: с 1901 по2155, 0000 для четырехзначного формата года и 1970-2069 при использовании двухзначного формата (70-69). MySQL выводит значенияYEAR в формате YYYY, но можно задавать значения в столбце YEAR, используя как строки, так и числа (тип данных YEAR недоступен в версиях, предшествующих MySQL 3.22).

[NATIONAL] CHAR(M) [BINARY]

Строка фиксированной длины, при хранении всегда дополняется пробелами в конце строки до заданного размера. Диапазон аргумента Mсоставляет от 0 до 255 символов (от 1 до 255 в версиях, предшествующих MySQL 3.23). Концевые пробелы удаляются при выводе значения. Если не задан атрибут чувствительности к регистру BINARY, то величины CHAR сортируются и сравниваются как независимые от регистра в соответствии с установленным по умолчанию алфавитом. Атрибут NATIONAL CHAR (или его эквивалентная краткая форма NCHAR) представляет собой принятый в ANSI SQL способ указания, что в столбце CHAR должен использоваться установленный по умолчанию набор символов (CHARACTER). В MySQL это принято по умолчанию. CHAR является сокращением от CHARACTER. MySQL позволяет создавать столбец типа CHAR(0). В основном это полезно, если необходимо обеспечить совместимость с некоторыми старыми приложениями, которые зависят от наличия столбца, но реально эту величину не используют. Кроме того, такая возможность может очень пригодиться в случае, если необходим столбец, который может содержать только 2 значения, а именно CHAR(0) (т.е. столбец, который не определен как NOT NULL, занимает только один бит и принимает только 2 значения: NULL или "").

CHAR

Это синоним для CHAR(1).

[NATIONAL] VARCHAR(M) [BINARY]

Строка переменной длины. Примечание: концевые пробелы удаляются при сохранении значения (в этом заключается отличие от спецификации ANSI SQL). Диапазон аргумента M составляет от 0 до 255 символов (от 1 до 255 в версиях, предшествующих MySQL Version 4.0.2). Если не задан атрибут чувствительности к регистру BINARY, то величины VARCHAR сортируются и сравниваются как независимые от регистра. Термин VARCHAR является сокращением от CHARACTER VARYING.

TINYBLOB

TINYTEXT

Столбец типа BLOB или TEXT с максимальной длиной 255 (2^8 - 1) символов

BLOB

TEXT

Столбец типа BLOB или TEXT с максимальной длиной 65535 (2^16 - 1) символов.

MEDIUMBLOB

MEDIUMTEXT

Столбец типа BLOB или TEXT с максимальной длиной 16777215 (2^24 - 1) символов.

LONGBLOB

LONGTEXT

Столбец типа BLOB или TEXT с максимальной длиной 4294967295 (2^32 - 1) символов. Следует учитывать, что в настоящее время протокол передачи данных сервер/клиент и таблицы MyISAM имеют ограничение 16 Мб на передаваемый пакет/строку таблицы, поэтому пока нельзя использовать этот тип данных в его полном диапазоне.

ENUM('значение1','значение2',...)

Перечисление. Перечисляемый тип данных. Объект строки может иметь только одно значение, выбранное из заданного списка величин'значение1', 'значение2', ..., NULL или специальная величина ошибки "". Список ENUM может содержать максимум 65535 различных величин.

SET('значение1','значение2',...)

Набор. Объект строки может иметь ноль или более значений, каждое из которых должно быть выбрано из заданного списка величин'значение1', 'значение2', ... Список SET может содержать максимум 64 элемента.

Ссылочная целостность

Внешний ключ

Внешние ключи - это основной механизм для организации связей между таблицами и поддержания целостности и непротиворечивости информации в базе данных.

Внешний ключ - это столбец или группа столбцов, ссылающиеся на столбец или группу столбцов другой (или этой же) таблицы. Таблица, на которую ссылается внешний ключ, называется родительской таблицей, а столбцы, на которые ссылается внешний ключ - родительским ключом. Родительский ключ должен быть первичным или уникальным ключом, значения же внешнего ключа могут повторяться хоть сколько раз. То есть с помощью внешних ключей поддерживаются связи "один ко многим". Типы данных (а в некоторых СУБД и размерности) соответствующих столбцов внешнего и родительского ключа должны совпадать.

И самое главное. Все значения внешнего ключа должны совпадать с каким-либо из значений родительского ключа. (Заметим в скобках насчет совпадения / несовпадения: нюансы возникают, когда в значениях столбцов вторичного ключа встречается NULL. Давайте пока в эти нюансы вдаваться не будем). Появление значений внешнего ключа, для которых нет соответствующих значений родительского ключа, недопустимо. Вот тут-то мы плавно переходим к понятию ссылочной целостности.

Ссылочная целостность

Первое из правил ссылочной целостности фактически уже изложено в предыдущем абзаце: в таблице не допускается появления (неважно, при добавлении или при модификации) строк, внешний ключ которых не совпадает с каким-либо из имеющихся значений родительского ключа.

Более интересные моменты возникают, когда мы удаляем или изменяем строки родительской таблицы. Как при этом не допустить появления \"болтающихся в воздухе\" строк дочерней таблицы? Для этого существуют правила ссылочной целостности ON UPDATE и ON DELETE, которые, по стандарту SQL 92, могут содержать следующие инструкции:

·                     CASCADE - обеспечивает автоматическое выполнение в дочерней таблице тех же изменений, которые были сделаны в родительском ключе. Если родительский ключ был изменен - ON UPDATE CASCADE обеспечит точно такие же изменения внешнего ключа в дочерней таблице. Если строка родительской таблицы была удалена, ON DELETE CASCADE обеспечит удаление всех соответствующих строк дочерней таблицы.

·                     SET NULL - при удалении строки родительской таблицы ON DELETE SET NULL установит значение NULL во всех столбцах вторичного ключа в соответствующих строках дочерней таблицы. При изменении родительского ключа ON UPDATE SET NULL установит значение NULL в соответствующих столбцах соответствующих строк (о как:) дочерней таблицы.

·                     SET DEFAULT - работает аналогично SET NULL, только записывает в соответствующие ячейки не NULL, а значения, установленные по умолчанию.

·                     NO ACTION (установлено по умолчанию) - при изменении родительского ключа никаких действий с внешним ключом в дочерней таблице не производится. Но если изменение значений родительского ключа приводит к нарушению ссылочной целостности (т.е. к появлению "висящих в воздухе" строк дочерней таблицы), то СУБД не даст произвести такие изменения родительской таблицы.

Указания к выполнению задания

  1. Запустите Денвер.
  2. Зайдите в phpMyAdmin.
  3. В основных настройках выберите кодировку utf8_general_ci.
  4. Выберите вкладку «Базы данных» и создайте новую.

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

            Создание таблицы с именем «user» представлено на следующем рисунке. Таблица содержит 4 поля «ntab» (номер табельный, тип – числовой, количество разрядов – 4, и ндекс – первичный ключ PRIMAR, автоматический инкремент при добавлении новой записи – AI), «fio» (ФИО, тип – строковый, длина – 160 символов), «data_rogd» (дата_рождения, тип - дата), «lgoty»(льготы, тип – логический (есть льгота у клиента, либо ее нет). Поля не могут быть пустыми.

  1. Чтобы изменить структуру таблицы необходимо выбрать ссылку «структура» для соответствующей таблицы.

            Далее в соответствующем поле (например, data_rogd ) выбрать ссылку «Изменить»

            В сплывающем окне необходимо внести изменения в существующую структуру поля таблицы (например,  указать, что поле «data_rogd» может быть пустым – в графе «NULL» поставить галочку). Обязательно нажать кнопку «Сохранить».

  1. Для организации ссылочной целостности необходимо создать внешние ключи. (если таблиц в базе 2 и более). Для этого, поле, которое будет являться внешним ключом, необходимо проиндексировать. (Например, создана еще одна таблица  «zakaz» - заказ, она содержит три поля: «id_zak» - идентификатор заказа, «data_zak» - дата заказа, «id_user» - идентификатор клиента). Поле «id_user» будет являться внешним ключом для связи с таблицей «user». Для этого его необходимо проиндексировать.

Далее необходимо выбрать ссылку «Связь», после чего появится диалоговое окно, в котором необходимо выбрать поле другой таблицы, на которое ссылается внешний ключ (в данном случае это user.ntab). Необходимо так же указать тип ссылочной целостности для операций удаления и обновления записей (читайте теоретические основы) и нажать кнопку «Сохранить».

  1. phpMyAdmin предоставляет дизайнер, который отображает физическую модель БД (поля с соответствующими типами данных и ограничениями, а так же связи по внешним ключам).

 

  1. Для заполнения базы данными с использованием phpMyAdmin необходимо выбрать вкладку «Вставить»

 

            Введите необходимые значения (не забудьте, что поле с первичным ключом наращивается автоматически, поэтому не требует ввода значения, а поле «data_rogd» - может быть пустым) и нажмите «ОК».

            Выбрав  во вкладках «Обзор», вы увидите введенные вами данные, доступные для редактирования.


Практическая работа №

 

Тема: Работа с базой данных в MySQL.
Цель: Получить навык в выборке, обновлении, удалении, добавлении данных в базу данных при работе с web-страницами, используя язык php.
Программное обеспечение:

Для выполнения лабораторной работы необходимо следующее ПО:

1.                 Текстовый редактор: Блокнот или Notepad++.

2.                 Программа для просмотра web-страниц – любой современный браузер (GoogleChrome, Mozilla FireFox).

3.                 WEB - сервер Apache.

Задание:

1.                 Прочесть теоретические основы и указания к выполнению.

2.                 Создайте web-страницу, позволяющую пользователю по нажатию на кнопку выбрать из базы сведения. (Работа ведется с базой, созданной на предыдущем практическом занятии).

3.                 Создайте web-страницу, позволяющую пользователю по нажатию на кнопку добавить в базу сведения, введенные им в компоненты формы. (Работа ведется с базой, созданной на предыдущем практическом занятии).

4.                 Создайте web-страницу, позволяющую пользователю по нажатию на кнопку отобразить содержимое одной таблицы. Каждая строка отображенной таблицы должна иметь ссылку, при выборе которой, соответствующая запись удаляется из базы (Работа ведется с базой, созданной на предыдущем практическом занятии).

5.                 Создайте web-страницу, позволяющую пользователю обновлять данные в базе. (Работа ведется с базой, созданной на предыдущем практическом занятии).

Отчет:

Отчет о выполнении лабораторной работы должен содержать следующие разделы:

1. Тему, цель, задание.

2. Ход работы: к каждому заданию сриншот web-страницы до нажатия кнопки и после нажатия кнопки, код web-страницы с комментариями.

3. Вывод о выполненной работе.

Защита

Защита лабораторной работы осуществляется на следующем лабораторном занятии. Для защиты необходимо предоставить отчет о выполненной лабораторной работе и продемонстрировать работу.

Студент допускается к защите ТОЛЬКО ПРИ НАЛИЧИИ отчета, web-страниц, а так же знании теоретического материала.

Теоретические основы

В PHP есть замечательная возможность использовать локальные переменные окружения, к которым относятся $_POST, $_GET и другие переменные. С точки зрения безопасности php скриптов, в идеале должны использоваться только $_POST и $_GET для получения параметров, переданных скрипту через строку браузера или командную строку. Использовать $_POST и $_GET безопасно по одной простой причине – вы сами определяете, какие переменные из запроса к php скрипту вы будете использовать, а какие оставите без внимания.

Полученные переменные $_POST и $_GET представляют собой простой ассоциированный массив. Где ключом массива является имя переменной, а соответствующим значением – ее значение. Т.е. при запросе вида:

http://wm-help.net/?module=word-stat&mode=site_i_date&date=198918&search_site_url=yandex
в переменной $_GET будет содержаться следующий массив:

Array

(

[module] => word-stat

[mode] => site_i_date

[date] => 198918

[search_site_url] => yandex

)

Для получения значения какой-либо переменной из этого массива достаточно всего лишь обратиться к ней по ее имени-ключу в массиве. Например, для получения значения переменной $module, нужно сделать следующее:

$module = $_GET['module'];

Теперь в переменной $module содержится значение этой переменной переданной через строку браузера, но извлеченное из переменной $_GET.

Работа с $_POST в php ничем не отличается от работы с $_GET – это такой же ассоциированный массив что и $_GET.

ISSET - определяет, установлена ли переменная. Возвращает TRUE, если var существует; иначе FALSE.

 

$_REQUEST

$_REQUEST Переменные HTTP-запроса

Описание

Ассоциативный массив (array), который по умолчанию содержит данные переменных $_GET, $_POST и $_COOKIE.

 

 

mysql_query() посылает запрос активной базе данных сервера, на который ссылается переданный указатель.

Только для запросов SELECT, SHOW, EXPLAIN, DESCRIBE, mysql_query() возвращает указатель на результат запроса, или FALSE если запрос не был выполнен.

В остальных случаях (INSERT, UPDATE, DELETE, DROP, и т.п.), mysql_query() возвращает TRUE в случае успешного запроса и FALSE в случае ошибки. Значение не равное FALSE говорит о том, что запрос был выполнен успешно. Он не говорит о количестве затронутых или возвращённых рядов. Вполне возможна ситуация, когда успешный запрос не затронет ни одного ряда.

mysql_result Возвращает данные результата запроса.

string mysql_result ( resource $result , int $row [, mixed $field = 0 ] )

Возвращает содержимое одного поля из набора результата MySQL.

 

Указания к выполнению задания

10.              Запустите Денвер.

11.              Созданная вами база данных с помощью phpMyAdmin хранится в папке C:\WebServers\usr\local\mysql-5.5\data в виде папки с файлами под именем вашей БД. Папку можно копировать и вставлять в папку другого сервера.

12.              Чтобы создать web-страницу, позволяющую пользователю работать с базой, необходимо наличие базы, заполненной записями.

Физическая модель базы данных «primer», таблица «lich_dan»:

            Записи в таблице «lich_dan»:

  1. Выборка данных из базы и размещение их на странице.

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

Выборка данных производится SQL-запросом «select ntab, Familiya, imya, otch from lich_dan», записанном в php-коде.

 

Листинг страницы:

<html>

            <head>

                        <title>vibor_iz_bazi</title>

            </head>

<body>

 

<h3> Личные данные студентов</h3>

<table border='0'>

<tr><td valign='top'>

<form action="vibor_iz_bazi.php" method="post">

<table border="0">

<tr>

<td><button onclick="javascript:parent.location.replace('http://localhost/vibor_iz_bazi.php')">Выход</button></td>

<td><input type='submit' value='Показать'name='pokaz'></td>

</tr>

</table></form></td><td>&nbsp &nbsp &nbsp &nbsp &nbsp &nbsp </td>

<td valign='top'>

<table border='1' >

<tr><td  width='10'align='center'><b>№_таб</b></td>

<td  align='center'width='40'><b>Фамилия</b></td>

<td  align='center'width='40'><b>Имя</b></td>

<td  align='center'width='40'><b>Отчество</b></td></tr>

<?

if (isset($_REQUEST['pokaz'])){

MySQL_connect('localhost','root','');

MySQL_select_db('primer')or die('нет такой базы');

$select=MySQL_query ("select ntab, Familiya, imya, otch from lich_dan");

while ($rows=MySQL_fetch_assoc($select))

{

echo ("<tr>\n");

echo( "<td> $rows[ntab]</td>\n");

echo( "<td> $rows[Familiya]</td>\n");

echo( "<td> $rows[imya]</td>\n");

echo( "<td> $rows[otch]</td>\n");

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

}

}

?>

</table>

</td></tr>

</table>

</body>

</html>

  1. Удаление данных из базы.

На странице будет отображаться таблица, в которую данные выбираются из базы по нажатию на кнопку. Каждая строка таблицы в 5 столбце имеет ссылку: <a href='vibor_iz_bazi.php?delete=$rows[ntab]'><img src='korr.gif'></a>. Ссылка ссылается на этот же документ ('vibor_iz_bazi.php), при этом в ссылке указано поле delete, которое содержит значение =$rows[ntab]'(номер табельный из соответствующей строки таблицы). Данное значение при переходе по ссылке будет помещено в массив $_REQUEST под индексом [delete].

При обнаружении в массиве $_REQUEST непустого поля delete (if (isset($_REQUEST['delete']))) удалится строка с номером табельным, соответствующим номеру, переданному в '$_REQUEST[delete]'. Таким образом, мы имеем ссылку, при нажатии на которую отправляется запрос в базу данных на удаление той записи, номер табельный которой соответствует номеру табельному строки со ссылкой таблицы на странице.

Листинг страницы:

<html>

<head>

<title>vibor_iz_bazi</title>

</head>

<body> <h3> Личные данные студентов</h3>

<table border='0'> <tr><td valign='top'>

<form action="vibor_iz_bazi.php" method="post">

<table border="0">

<tr><td>

<button onclick="javascript:parent.location.replace('http://localhost/vibor_iz_bazi.php')">

Выход</button></td>

<td><input type='submit' value='Показать'name='pokaz'></td></tr>

</table></form></td> <td>&nbsp &nbsp &nbsp &nbsp &nbsp &nbsp </td>

<td valign='top'>

<table border='1' >

<tr><td  width='10'align='center'><b>№_таб</b></td>

<td  align='center'width='40'><b>Фамилия</b></td>

<td  align='center'width='40'><b>Имя</b></td>

<td  align='center'width='40'><b>Отчество</b></td>

<td  align='center'width='40'><b>Действие</b></td></tr>

<? if (isset($_REQUEST['delete'])){

MySQL_connect('localhost','root',''); MySQL_select_db('primer')or die('нет такой базы');

MySQL_query ("delete from lich_dan where ntab='$_REQUEST[delete]'");

}?>

<? if (isset($_REQUEST['pokaz'])){

MySQL_connect('localhost','root','');

MySQL_select_db('primer')or die('нет такой базы');

$select=MySQL_query ("select ntab, Familiya, imya, otch from lich_dan");

while ($rows=MySQL_fetch_assoc($select))

{ echo ("<tr>\n");

echo( "<td> $rows[ntab]</td>\n");

echo( "<td> $rows[Familiya]</td>\n");

echo( "<td> $rows[imya]</td>\n");

echo( "<td> $rows[otch]</td>\n");

echo( "<td> <a href='vibor_iz_bazi.php?delete=$rows[ntab]'><img src='korr.gif'></a></td>\n");

echo("</tr>\n");}}?>

</table></td></tr></table></body></html>

 

  1. Сохранение записей в базу данных.

Содержимое БД «primer» таблицы «lich_dan»:

 

            На странице необходимо разместить форму с полями для ввода соответствующих сведений и кнопку, по нажатию на которую будет производиться запись:

            Заполнение полей формы:

            Проверьте состояние базы данных после выполнения регистрации:

 

            Листинг страницы добавления данных в базу:

<html>

<head>

<title>registration</title>

</head>

<body>

<?php

            mysql_connect("localhost", "root", "");

            MySQL_select_db('primer')or die('нет такой базы');

            if (isset($_GET['submit']))

            {

                $ntab = $_GET['ntab'];               

                $fam = $_GET['fam'];

                        $name = $_GET['name'];

                        $otch = $_GET['otch'];

                       

                        mysql_query("INSERT INTO lich_dan SET ntab='".  $ntab."', Familiya='". $fam . "', imya='". $name . "', otch='". $otch ."'");

                                    $message = "Регистрация прошла успешно";

                       

            }

?>

<h1> Регистрация </h1>

<form method="GET" action='registration.php'>

<table border='0'>

<tr><td>Идентификатор</td><td> <input name="ntab" type="text"></td><br></tr>

<tr><td>Фамилия</td><td> <input name="fam" type="text"></td><br></tr>

<tr><td>Имя</td> <td><input name="name" type="text"></td><br></tr>

<tr><td>Отчество</td><td> <input name="otch" type="text"></td><br></tr>

<tr><td></td><td><input name="submit" type="submit" value="Зарегистрироваться"> </td></tr>

</table>

</form>

<?  echo "<h4>" . $message . "</h4>"; ?>

</body>

</html>

 

  1. Обновление данных в базе производится аналогично остальным операциями с базой данных.

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Методические указания по созданию базы данных в MySQL , по работе с базой данных посредством языка php"

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Корреспондент

Получите профессию

Технолог-калькулятор общественного питания

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 672 268 материалов в базе

Скачать материал

Другие материалы

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 11.12.2017 2272
    • DOCX 1.6 мбайт
    • 64 скачивания
    • Рейтинг: 5 из 5
    • Оцените материал:
  • Настоящий материал опубликован пользователем Сухомлинова Мария Викторовна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Сухомлинова Мария Викторовна
    Сухомлинова Мария Викторовна
    • На сайте: 7 лет и 6 месяцев
    • Подписчики: 0
    • Всего просмотров: 3372
    • Всего материалов: 2

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Бухгалтер

Бухгалтер

500/1000 ч.

Подать заявку О курсе
  • Сейчас обучается 29 человек из 22 регионов

Курс профессиональной переподготовки

Руководство электронной службой архивов, библиотек и информационно-библиотечных центров

Начальник отдела (заведующий отделом) архива

600 ч.

9840 руб. 5600 руб.
Подать заявку О курсе
  • Этот курс уже прошли 25 человек

Курс повышения квалификации

Специалист в области охраны труда

72/180 ч.

от 1750 руб. от 1050 руб.
Подать заявку О курсе
  • Сейчас обучается 33 человека из 20 регионов
  • Этот курс уже прошли 158 человек

Курс профессиональной переподготовки

Библиотечно-библиографические и информационные знания в педагогическом процессе

Педагог-библиотекарь

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 499 человек из 71 региона
  • Этот курс уже прошли 2 336 человек

Мини-курс

Создание и продвижение сайтов для достижения максимальных результатов

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 30 человек из 15 регионов

Мини-курс

Фокусировка и лидерство: достижение успеха в условиях стресса и перемен

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 23 человека из 13 регионов

Мини-курс

Управление проектами и стоимостная оценка в современном бизнесе

4 ч.

780 руб. 390 руб.
Подать заявку О курсе