Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <html>
- <head>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
- <style>
- </style>
- </head>
- <body>
- <form method="POST" action="somephp.php">
- Име на преподавател: <input type="text" name="firstName" value="<?php
- if(!empty($_POST['firstName'])){
- print $_POST['firstName'];
- }?>">
- </br>
- Фамилия на преподавател: <input type="text" name="lastName" value="<?php
- if(!empty($_POST['lastName'])){
- print $_POST['lastName'];
- }?>">
- <input type="submit" value="Търси">
- </form>
- <?php
- // Задаваме хост, потребителско име, парола и име на БД
- $host = '77.78.30.214';
- $user = 'root';
- $password = 'Pia4kata1234!';
- $db_name = 'upr2';
- // Създаване на връзка към MySQL.
- // В $DBH се съхранява обект от клас mysqli.
- $DBH = new mysqli($host, $user, $password, $db_name);
- if ($DBH->connect_errno) {
- // В случай на неуспешно свързване се извежда съобщението
- // за грешка, върнато от MySQL.
- print $DBH->connect_error;
- // Прекратява изпълнението на програмата.
- exit;
- }
- // Задава кодиране на връзката между php и mysql –
- // кодова таблица utf8
- // (същата като тази, използвана от клиента)
- $DBH->query("SET NAMES utf8");
- // Дефинира се SQL заявката за извличане на данни
- $query = 'SELECT students.firstName, students.lastName,
- evaluation.grade, subjects.name
- FROM students, subjects, evaluation, professors
- WHERE professors.firstName = ? AND professors.lastName = ?
- AND students.FN = evaluation.FN AND evaluation.SSN=professors.SSN
- AND evaluation.subjectId = subjects.id';
- // Изпращаме параметризираната заявка към СУБД
- // Създава се обектът $stmt от клас mysqli_stsm
- if (!$stmt = $DBH->prepare($query)) {
- print $DBH->error;
- exit;
- }
- // Свързваме променливите $firstName,$lastName, която съдържа имената на преподавателите,
- // по която търсим с безименния параметър ? в sql заявката.
- // Тъй като имената са текст, то аргументите на метода указваме ss.
- if (!$stmt->bind_param("ss", $_POST['firstName'], $_POST['lastName'])) {
- print $DBH->error;
- exit;
- }
- // Изпълнява се заявката.
- if (!$stmt->execute()) {
- // Ако заявката не може да се изпълни се извежда
- // съобщение за грешка и се прекратява
- // изпълнението на програмата.
- print $DBH->error;
- exit;
- }
- // Извличаме целия резултат (т.е. всички записи наведнъж), който се буферира в php приложението ни.
- // Така приложението ни ще знае броя на върнатите записи и ще освободи заетите от резултата ресурси в СУБД.
- // Обектът $result се обработва по същия начин, като при обикновените заявки.
- if (!$result = $stmt->get_result()) {
- print $DBH->error;
- exit;
- }
- if ($result->num_rows<1) {
- print('Грешка! Не съществува такъв студент или преподавател!');
- }
- // На всяка итерация от долния цикъл се извлича по 1 запис от резултатите.
- while ($row = $result->fetch_assoc()) {
- // Всеки атрибут в SELECT клаузата става ключ в
- // асоциативния масив (в случая $row)
- // върнат от fetch_assoc().
- echo 'Студент '.$row['firstName'].' ';
- echo $row['lastName'].' има оценка ';
- echo $row['grade'].' по ';
- echo $row['name'].'<br>';
- }
- // Освобождава паметта, заета от резултата.
- $result->free();
- // Освобождава ресурсите в СУБД, заети параметризираната заявка.
- $stmt->close();
- // Затваря връзката към СУБД.
- $DBH->close();
- ?>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement