Разработка Web-приложений на PHP для ведения таблиц в базе данных с СУБД MySQL

Таблица единиц измерения

Для разработки данного и последующих Web-приложений использовался Denwer (п. 2.1.1).

Рассмотрим пример простой учебной программы на PHP, которая позволяет добавлять, находить и изменять записи таблиц единиц измерения в базе данных заказов товаров с СУБД MySQL. Форма ведения справочника представлена на рисунке 3.2.1.1.

Рисунок 3.2.1.1 – Окно браузера с формой ведения справочника

 

Для создания базы данных с СУБД MySQL использовался визуальный редактор phpMyAdmin (рисунок 3.2.1.2).

В пособии код программы включался из реальных программ путем копирования из буфера. Поэтому длинные строки могут занимать в пособии ни одну, а несколько строк, что необходимо учитывать при изучении кода программ.

 

Рисунок 3.2.1.2 – Окно просмотра phpMyAdmin таблицы единиц измерения

 

Код программы sql.php на языке PHP (автор В.В. Плещев).

<HTML> <head> <title> Единицы Измерения </title></head>

<body>

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

<input type=reset name="operation" value="Очистка"/>

<input type=submit name="operation" value="Добавить"/>

<input type=submit name="operation" value="Найти"/>

<input type=submit name="operation" value="Изменить"/>

<table>

<tr>

<td align="right">Код единицы измерения</td>

<td> <input name="kei" maxlength="10" size="10"/></td>

</tr>

<tr>

<td align="right">Наименование</td>

<td><input name="nei" maxlength="10" size="10"/></td>

</tr>

</table>

</form>

<?php // начало программы на PHP

$dbhost="localhost"; //имя сервера

$username="root"; // имя пользователя по умолчанию

$dbpass=""; // пароль базы данных

$dbname="заказы_товаров"; //наименование базы данных

$operation=$_POST['operation']; //чтение поля с наименование операции (кнопки)

$kei=$_POST['kei']; //чтение значения поля kei с кодом единицы измерения

$nei=$_POST['nei']; //чтение поля поля nei с наименованием единицы измерения

$link=mysql_connect($dbhost,$username,$dbpass); //связь с базой

If (!$link) exit("Ошибка при подключении к БД:".mysql_error()); //Ошибка

mysql_select_db($dbname, $link) or exit ("Ошибка при открытии базы". mysql_error());

switch ($operation) //проверка, какая кнопка была нажата

{ case 'Добавить' // нажата кнопка «Добавить»

{ $zapros1="insert into `едизм` (`код_едизм`,`наименование_едизм`)

values('".$kei."','".$nei."')"; //текст запроса на добавление записи

$rezult1=mysql_query ($zapros1); //выполнение запроса

if(!$rezult1) //проверка на ошибку выполнения запроса

exit ("Запись не добавлена:". mysql_error()); //ошибка при выполнении запроса

echo("Запись добавлена"); break; // вывод сообщения о добавлении записи

}

case 'Найти' // нажата кнопка «Найти»

{ $zapros2="select `наименование_едизм` from `едизм` where `код_едизм`='$kei'";

$rezult2=mysql_query ($zapros2); //выполнение запроса на поиск записи

$row = mysql_fetch_assoc($rezult2); //чтение полей записи в массив $row

$r=$row['наименование_едизм']; // выборка из массива поля “наименование_едизм”

if (!$row) echo("не нашлось"); //проверка на существование записи в запросе

echo($r);

break;

}

case 'Изменить' // если нажата кнопка «Изменить»

{ $zapros3="select `наименование_едизм` from `едизм` where `код_едизм`='$kei'";

$rezult3=mysql_query ($zapros3); //выполнение запроса на поиск записи

$row2 = mysql_fetch_assoc($rezult3); //чтение полей записи в массив $row2

$r2=$row2['наименование_едизм']; // выборка из массива поля “наименование_едизм”

if(!$row2) echo("не нашлось"); //проверка на существование записи в запросе

else //запись найдена

{ $zapros="update `едизм` set `наименование_едизм` = '$nei' where

`код_едизм`='$kei'"; //текст запроса на корректировку записи

$rezult=mysql_query ($zapros); //выполнение запроса на корректировку записи

if(!$rezult) exit ("не получилось". mysql_error());//проверка на ошибку

echo("изменено"); //сообщение об успешном изменении записи

}; //конец else

break;

}

} //конец оператора switch

?>

</body>

</HTML>

 

Таблица успеваемости студентов

Структура таблицы успеваемости студентов и вид формы в окне броузера показаны на рисунках 3.2.2.1, 3.2.2.2.

 

Рисунок 3.2.2.1 – Окно просмотра phpMyAdmin таблицы успеваемости студентов

 

Рисунок 3.2.2.2 – Окно браузера с формой ведения таблицы успеваемости

 

Кнопкой Найти выводятся записи, которые содержат указанный текст в наименовании учебного предмета (если текст не указан, то выводятся все записи).

Кнопкой Все записи выводятся все записи таблицы.

Кнопкой Очистить поля формы очищаются.

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

В пустой строке укзываются значения полей новой добавляемой в таблицу записи.

Код программы sql.php на языке PHP (автор Прозоров Андрей).

<HTML> <head>

<style type="text/css">

.block1 { width: 13%; float: left; }

.block2 { width: 11%; float: left; padding: 1%; }

.block3 { width: 3%; float: left; }

.block4 { width: 3%; float: left; }

</style>

<title>Учащиеся</title></head>

<form action="1sql.php" method="post">

<table>

<tr>

<td align="right">Наименование предмета</td>

<td> <input name="search" maxlength="20" size="20"/></td>

<td> <input type=submit name="operation" value="Найти"/> </td>

<td> <input type=submit name="operation" value="Все записи"/> </td>

<td> <input type=reset name="operation" value="Очистка"/> </td>

<td> <input type=submit name="operation" value="Выполнить"/></td>

</tr>

</table>

<br>

<body>

<?php // начало программы на PHP

$dbhost="localhost"; //имя сервера

$username="username "; // имя пользователя по умолчанию

$dbpass="dbpass "; // пароль базы данных

$dbname="dbname "; //наименование базы данных

$operation=$_POST['operation']; //чтение поля с наименование операции (кнопки)

$search=$_POST['search']; //чтение значения поля с наименованием предмета

$data=$_POST['data']; //чтение значения поля с датой сдачи экзамена

$ocenka=$_POST['ocenka']; //чтение значения поля с оценок за экзамен

$familiya=$_POST['familiya']; //чтение значения поля с фамилией студента

$kod=$_POST['kod']; //чтение значения поля с номером записи

$link=mysql_connect($dbhost,$username,$dbpass); //связь с базой

mysql_query('SET NAMES cp1251'); //задание системы кодирования текстовых полей

if (!$link) exit("Ошибка при подключении к БД:".mysql_error()); //Ошибка

mysql_select_db($dbname, $link) or exit ("Ошибка при открытии базы". mysql_error());

function table($result) //функция table выводит пустую строку для добавления и

//содержимое запроса, если таковой имеется

//чтение значения поля с наименованием предмета

{

echo '<div class="block2"> Наименование</div>';

echo '<div class="block2">Дата</div>' ;

echo '<div class="block2">Оценка</div>' ;

echo '<div class="block2">Фамилия</div>';

echo '<div class="block4"><img src="edit.png" width="35" height="35"

title="Изменить"></div>';

echo '<div class="block4"><img src="add.png" width="35" height="35"

title="Добавить"></div>';

echo '<div class="block4"><img src="delete.png" width="35" height="35"

title="Удалить"></div><br><br><br>';

echo '<div class="block1"><input name="naim_pred" maxlength="20" size="20"

value = ""/></div>';

echo " ";

echo '<div class="block1"><input type="date" name="data" maxlength="10" size="10"

value = ""/></div>';

echo " ";

echo '<div class="block1"><input name="ocenka" maxlength="1" size="20"

value = ""/></div>';

echo " ";

echo '<div class="block1"><input name="familiya" maxlength="15" size="20"

value = ""/></div>';

echo " ";

echo '<div class="block3"><input type="checkbox" title="Изменить" disabled="disabled"

name="change" value="change"></div>';

echo '<div class="block3"><input type="checkbox" title="Добавить" name="add"

value="add"></div>';

echo '<div class="block3"><input type="checkbox" title="Удалить" disabled="disabled"

name="delete" value="delete"></div>';

echo "<br>";

echo "<br>";

 

while ($row = mysql_fetch_assoc($result))

{

echo '<input type="hidden" name="kod'.$row['код'].'" maxlength="20" size="20"

value = "'.$row['код'].'"/>';

echo '<div class="block1"><input name="naim_pred'.$row['код'].'" maxlength="20"

size="20" value = "'.$row['наим_предмета'].'"/></div>';

echo " ";

echo '<div class="block1"><input type="date" name="data'.$row['код'].'" maxlength="10"

size="10" value = "'.$row['дата'].'"/></div>';

echo " ";

echo '<div class="block1"><input name="ocenka'.$row['код'].'" maxlength="1" size="20"

value = "'.$row['оценка'].'"/></div>';

echo " ";

echo '<div class="block1"><input name="familiya'.$row['код'].'" maxlength="15"

size="20" value = "'.$row['фамилия'].'"/></div>';

echo " ";

echo '<div class="block3"><input type="checkbox" title="Изменить"

name="change'.$row['код'].'" value="change'.$row['код'].'"></div>';

echo '<div class="block3"><input type="checkbox" title="Добавить"

name="add'.$row['код'].'" value="add'.$row['код'].'"></div>';

echo '<div class="block3"><input type="checkbox" title="Удалить"

name="delete'.$row['код'].'" value="delete'.$row['код'].'"></div>';

echo "<br>";

echo "<br>";

$lastkod = $row['код'];

} //конец цикла

echo '<input type="hidden" name="lastkod" maxlength="20" size="20"

value = "'.$lastkod.'"/>';

echo '</form>';

} //Конец функции

switch ($operation) //проверка, какая кнопка была нажата

{

case 'Выполнить'

{ if (isset($_POST["add"])) //проверяем первую пустую строку, добавляют ли ее

{ $zapros="insert into `студенты` (`код`,`наим_предмета`,`дата`,`оценка`,`фамилия`)

values('','".$naim_pred."','".$data."','".$ocenka."','".$familiya."')"; //текст запроса на

// добавление записи выполнение запроса

$rezult=mysql_query ($zapros); if(!$rezult) //проверка на ошибку

exit ("Запись не добавлена: <br>". mysql_error()); //ошибка при выполнении запроса

echo("Запись добавлена <br>");

}

$lastkod = $_POST['lastkod']; //узнаем код последней записи для цикла

for ($i=1;$i<=$lastkod;$i++) // цикл, проходим по галкам

{ $naim_pred=$_POST["naim_pred".$i.""];

$data = $_POST["data".$i.""];

$ocenka = $_POST["ocenka".$i.""];

$familiya = $_POST["familiya".$i.""];

$kod = $_POST["kod".$i.""];

if(isset($_POST["change".$i.""])) //проверяем галки изменения

{ $zapros="update `студенты` set `наим_предмета` = '$naim_pred', `дата` = '$data',

`оценка` = '$ocenka', `фамилия` = '$familiya' where

`Код`='$kod'"; //текст запроса на корректировку записи

$rezult=mysql_query ($zapros); //выполнение запроса на корректировку записи

if(!$rezult) exit ("не получилось". mysql_error()); //проверка на ошибку

echo("Запись ".$i." изменена<br>"); //сообщение об успешном изменении }

elseif(isset($_POST["add".$i.""])) //проверяем галки добавления

{ $zapros="insert into `студенты`

(`код`,`наим_предмета`,`дата`,`оценка`,`фамилия`)

values('','".$naim_pred."','".$data."','".$ocenka."','".$familiya."')"; //текст запроса на

//добавление записи

$rezult=mysql_query ($zapros); //выполнение запроса

if( !$rezult) //проверка на ошибку выполнения запроса

exit ("Запись не добавлена: <br>". mysql_error()); //ошибка при выполнении

echo("Запись добавлена <br>");

}

elseif(isset($_POST["delete".$i.""])) //проверяем галки удаления

{ $zapros="delete from `студенты` where `Код`='$kod'"; //текст запроса

$rezult=mysql_query ($zapros); //выполнение запроса на удаление записи

if(!$rezult) exit ("не получилось". mysql_error()); //проверка на ошибку

echo("Запись ".$i." удалена<br>"); //сообщение об успешном удалении записи }

}

echo '<META HTTP-EQUIV="Refresh" CONTENT="2; URL=1sql.php">';

break; // все

} // конец Case

case 'Найти' // нажата кнопка «Найти»

{ if ($search == "") //если строка поиска пустая, то выводим все записи

{ $zapros="select * from `студенты` order by `код`"; }

else

{ $zapros="select * from `студенты` where `наим_предмета` like '%$search%'

order by `код`"; // like нужен для поиска не полного слова

//Например есть предмет "Алгебра", в поиске вводим "Ал" и видим предметы в

// которых содержится "Ал"

}

$result=mysql_query ($zapros); //выполнение запроса на поиск записи

table($result); //передаем функции значение результата запроса

break;

} // конец Саse

case 'Все записи': //Нажата кнопка "Все записи"

{ $zapros="select * from `студенты` order by `код`";

result=mysql_query ($zapros); //выполнение запроса на поиск записи

table($result); //передаем функции значение результата запроса

break;

} конец Case

default

{ $zapros="select * from `студенты` order by `код`";

$result=mysql_query ($zapros);

table($result);

break;

} // конец Case

} //конец оператора switch

?>

</body>

</HTML>

 








Дата добавления: 2015-04-15; просмотров: 1909;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.076 сек.