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">
- </head>
- <body>
- <?php
- // Задаваме хост, потребителско име, парола и име на БД
- $host = '127.0.0.1';
- $user = 'root';
- $password = '';
- $db_name = 'student_system';
- // Вземаме от index.html с POST метод името и фамилията на преподавателя от текстови полета
- $firstName = $_POST['firstName'];
- $lastName = $_POST['lastName'];
- // Създаване на връзка към 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,
- subjects.name, evaluation.grade
- 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;
- }
- // Свързваме променливата $minGrade, която съдържа минималната оценка, по която търсим
- // с безименния параметър ? в sql заявката.
- // Тъй като имената са текст, то аргументите на метода указваме ss.
- if (!$stmt->bind_param("ss", $firstName,$lastName)) {
- print $DBH->error;
- exit;
- }
- // Изпълнява се заявката.
- if (!$stmt->execute()) {
- // Ако заявката не може да се изпълни се извежда
- // съобщение за грешка и се прекратява
- // изпълнението на програмата.
- print $DBH->error;
- exit;
- }
- // Извличаме целия резултат (т.е. всички записи наведнъж), който се буферира в php приложението ни.
- // Така приложението ни ще знае броя на върнатите записи и ще освободи заетите от резултата ресурси в СУБД.
- // Обектът $result се обработва по същия начин, като при обикновените заявки.
- if (!$result = $stmt->get_result()) {
- print $DBH->error;
- exit;
- }
- // На всяка итерация от долния цикъл
- // се извлича по 1 запис от резултатите.
- while ($row = $result->fetch_assoc()) {
- // Всеки атрибут в SELECT клаузата става ключ в
- // асоциативния масив (в случая $row)
- // върнат от fetch_assoc().
- print 'Студент '.$row['firstName'].' ';
- print $row['lastName'].' има оценка ';
- print $row['grade'].' по дисциплина ';
- print $row['name'].'<br>';
- }
- // Освобождава паметта (в php приложението), заета от резултата.
- $result->free();
- // Освобождава ресурсите в СУБД, заети параметризираната заявка.
- $stmt->close();
- // Затваря връзката към СУБД.
- $DBH->close();
- ?>
- </body>
- </html>
Add Comment
Please, Sign In to add comment