Guest User

Untitled

a guest
Jan 27th, 2018
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.97 KB | None | 0 0
  1. <html>
  2. <head>
  3. <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=UTF-8">
  4. </head>
  5. <body>
  6. <?php
  7. // Задаваме хост, потребителско име, парола и име на БД
  8. $host = '127.0.0.1';
  9. $user = 'root';
  10. $password = '';
  11. $db_name = 'student_system';
  12.  
  13. // Вземаме от index.html с POST метод името и фамилията на преподавателя от текстови полета
  14. $firstName = $_POST['firstName'];
  15. $lastName = $_POST['lastName'];
  16. // Създаване на връзка към MySQL.
  17. // В $DBH се съхранява обект от клас mysqli.
  18. $DBH = new mysqli($host, $user, $password, $db_name);
  19. if ($DBH->connect_errno) {
  20. // В случай на неуспешно свързване се извежда съобщението
  21. // за грешка, върнато от MySQL.
  22. print $DBH->connect_error;
  23. // Прекратява изпълнението на програмата.
  24. exit;
  25. }
  26.  
  27. // Задава кодиране на връзката между php и mysql –
  28. // кодова таблица utf8
  29. // (същата като тази, използвана от клиента)
  30. $DBH->query("SET NAMES utf8");
  31. // Дефинира се SQL заявката за извличане на данни.
  32. $query = 'SELECT students.firstName,students.lastName,
  33. subjects.name, evaluation.grade
  34. FROM students,subjects, evaluation, professors
  35. WHERE professors.firstName = ? AND professors.lastName = ?
  36. AND
  37. students.FN = evaluation.FN AND evaluation.SSN=professors.SSN
  38. AND evaluation.subjectId = subjects.id';
  39. // Изпращаме параметризираната заявка към СУБД
  40. // Създава се обектът $stmt от клас mysqli_stsm
  41. if (!$stmt = $DBH->prepare($query)) {
  42. print $DBH->error;
  43. exit;
  44. }
  45.  
  46. // Свързваме променливата $minGrade, която съдържа минималната оценка, по която търсим
  47. // с безименния параметър ? в sql заявката.
  48. // Тъй като имената са текст, то аргументите на метода указваме ss.
  49. if (!$stmt->bind_param("ss", $firstName,$lastName)) {
  50. print $DBH->error;
  51. exit;
  52. }
  53. // Изпълнява се заявката.
  54. if (!$stmt->execute()) {
  55. // Ако заявката не може да се изпълни се извежда
  56. // съобщение за грешка и се прекратява
  57. // изпълнението на програмата.
  58. print $DBH->error;
  59. exit;
  60. }
  61. // Извличаме целия резултат (т.е. всички записи наведнъж), който се буферира в php приложението ни.
  62. // Така приложението ни ще знае броя на върнатите записи и ще освободи заетите от резултата ресурси в СУБД.
  63. // Обектът $result се обработва по същия начин, като при обикновените заявки.
  64. if (!$result = $stmt->get_result()) {
  65. print $DBH->error;
  66. exit;
  67. }
  68. // На всяка итерация от долния цикъл
  69. // се извлича по 1 запис от резултатите.
  70. while ($row = $result->fetch_assoc()) {
  71. // Всеки атрибут в SELECT клаузата става ключ в
  72. // асоциативния масив (в случая $row)
  73. // върнат от fetch_assoc().
  74. print 'Студент '.$row['firstName'].' ';
  75. print $row['lastName'].' има оценка ';
  76. print $row['grade'].' по дисциплина ';
  77. print $row['name'].'<br>';
  78. }
  79. // Освобождава паметта (в php приложението), заета от резултата.
  80. $result->free();
  81. // Освобождава ресурсите в СУБД, заети параметризираната заявка.
  82. $stmt->close();
  83. // Затваря връзката към СУБД.
  84. $DBH->close();
  85. ?>
  86. </body>
  87. </html>
Add Comment
Please, Sign In to add comment