Advertisement
Guest User

Untitled

a guest
Jan 30th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.03 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. // Задаваме хост, потребителско име, парола и име на БД
  9. $host = '77.78.30.214';
  10. $user = 'root';
  11. $password = 'Pia4kata1234!';
  12. $db_name = 'upr2';
  13.  
  14. // Вземаме от index.html с POST метод името и фамилията на преподавателя от текстови полета
  15. $firstName = $_POST['firstName'];
  16. $lastName = $_POST['lastName'];
  17. // Създаване на връзка към MySQL.
  18. // В $DBH се съхранява обект от клас mysqli.
  19. $DBH = new mysqli($host, $user, $password, $db_name);
  20. if ($DBH->connect_errno) {
  21. // В случай на неуспешно свързване се извежда съобщението
  22. // за грешка, върнато от MySQL.
  23. print $DBH->connect_error;
  24. // Прекратява изпълнението на програмата.
  25. exit;
  26. }
  27.  
  28. // Задава кодиране на връзката между php и mysql –
  29. // кодова таблица utf8
  30. // (същата като тази, използвана от клиента)
  31. $DBH->query("SET NAMES utf8");
  32.  
  33. // Дефинира се SQL заявката за извличане на данни.
  34. $query = 'SELECT students.firstName,students.lastName, subjects.name, evaluation.grade
  35. FROM students,subjects, evaluation, professors
  36. WHERE professors.firstName = ? AND professors.lastName = ? AND
  37. students.FN = evaluation.FN AND evaluation.SSN=professors.SSN AND evaluation.subjectId = subjects.id';
  38.  
  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.  
  62. // Извличаме целия резултат (т.е. всички записи наведнъж), който се буферира в php приложението ни.
  63. // Така приложението ни ще знае броя на върнатите записи и ще освободи заетите от резултата ресурси в СУБД.
  64. // Обектът $result се обработва по същия начин, като при обикновените заявки.
  65. if (!$result = $stmt->get_result()) {
  66. print $DBH->error;
  67. exit;
  68. }
  69.  
  70. // На всяка итерация от долния цикъл
  71. // се извлича по 1 запис от резултатите.
  72. while ($row = $result->fetch_assoc()) {
  73. // Всеки атрибут в SELECT клаузата става ключ в
  74. // асоциативния масив (в случая $row)
  75. // върнат от fetch_assoc().
  76. print 'Студент '.$row['firstName'].' ';
  77. print $row['lastName'].' има оценка ';
  78. print $row['grade'].' по дисциплина ';
  79. print $row['name'].'<br>';
  80. }
  81.  
  82. // Освобождава паметта (в php приложението), заета от резултата.
  83. $result->free();
  84.  
  85. // Освобождава ресурсите в СУБД, заети параметризираната заявка.
  86. $stmt->close();
  87.  
  88. // Затваря връзката към СУБД.
  89. $DBH->close();
  90.  
  91. ?>
  92. </body>
  93. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement