Guest User

Untitled

a guest
Jan 29th, 2018
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.50 KB | None | 0 0
  1. <html>
  2. <head>
  3. <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
  4. <style>
  5. table, tr {
  6. border: 1px solid black;
  7. }
  8. </style>
  9. </head>
  10. <body>
  11. <form method="get" action="someTest.php">
  12. <div>Въведи име на преподавател: <input type="text" name="firstName" value="<?php
  13.  
  14. if(!empty($_GET['firstName'])){
  15. print $_GET['firstName'];
  16. }?>">
  17. </div>
  18. </br>
  19. <div>Въведи фамилия на преподавател: <input type="text" name="lastName" value="<?php
  20.  
  21. if(!empty($_GET['lastName'])){
  22. print $_GET['lastName'];
  23. }?>"></div>
  24. </br>
  25. <div><input type="submit" value="Търси"></div>
  26. </form>
  27. <?php
  28. // Задаваме хост, потребителско име, парола и име на БД
  29. $host = '77.78.30.214';
  30. $user = 'root';
  31. $password = 'Pia4kata1234!';
  32. $db_name = 'upr2';
  33.  
  34. // Създаване на връзка към MySQL.
  35. // В $DBH се съхранява обект от клас mysqli.
  36. $DBH = new mysqli($host, $user, $password, $db_name);
  37. if ($DBH->connect_errno) {
  38. // В случай на неуспешно свързване се извежда съобщението
  39. // за грешка, върнато от MySQL.
  40. print $DBH->connect_error;
  41. // Прекратява изпълнението на програмата.
  42. exit;
  43. }
  44.  
  45. // Задава кодиране на връзката между php и mysql –
  46. // кодова таблица utf8
  47. // (същата като тази, използвана от клиента)
  48. $DBH->query("SET NAMES utf8");
  49.  
  50. // Дефинира се SQL заявката за извличане на данни
  51. $query = 'SELECT students.firstName, students.lastName,
  52. evaluation.grade, subjects.name
  53. FROM students, subjects, evaluation, professors
  54. WHERE professors.firstName = ? AND professors.lastName = ?
  55. AND students.FN = evaluation.FN AND evaluation.SSN=professors.SSN
  56. AND evaluation.subjectId = subjects.id';
  57.  
  58. // Изпращаме параметризираната заявка към СУБД
  59. // Създава се обектът $stmt от клас mysqli_stsm
  60. if (!$stmt = $DBH->prepare($query)) {
  61. print $DBH->error;
  62. exit;
  63. }
  64.  
  65. // Свързваме променливите $firstName,$lastName, която съдържа имената на преподавателите,
  66. // по която търсим с безименния параметър ? в sql заявката.
  67. // Тъй като имената са текст, то аргументите на метода указваме ss.
  68. if (!$stmt->bind_param("ss", $_GET['firstName'], $_GET['lastName'])) {
  69. print $DBH->error;
  70. exit;
  71. }
  72. // Изпълнява се заявката.
  73. if (!$stmt->execute()) {
  74. // Ако заявката не може да се изпълни се извежда
  75. // съобщение за грешка и се прекратява
  76. // изпълнението на програмата.
  77. print $DBH->error;
  78. exit;
  79. }
  80.  
  81. // Извличаме целия резултат (т.е. всички записи наведнъж), който се буферира в php приложението ни.
  82. // Така приложението ни ще знае броя на върнатите записи и ще освободи заетите от резултата ресурси в СУБД.
  83. // Обектът $result се обработва по същия начин, като при обикновените заявки.
  84. if (!$result = $stmt->get_result()) {
  85. print $DBH->error;
  86. exit;
  87. }
  88.  
  89. if ($result->num_rows<1) {
  90. print('Грешка! Не съществува такъв студент или преподавател!');
  91. }
  92.  
  93. // На всяка итерация от долния цикъл се извлича по 1 запис от резултатите.
  94. while ($row = $result->fetch_assoc()) {
  95. // Всеки атрибут в SELECT клаузата става ключ в
  96. // асоциативния масив (в случая $row)
  97. // върнат от fetch_assoc().
  98. print $row['firstName'].' ';
  99. print $row['lastName'].', ';
  100. print $row['grade'].', ';
  101. print $row['name'].'<br>';
  102. }
  103.  
  104. // Освобождава паметта, заета от резултата.
  105. $result->free();
  106.  
  107. // Освобождава ресурсите в СУБД, заети параметризираната заявка.
  108. $stmt->close();
  109.  
  110. // Затваря връзката към СУБД.
  111. $DBH->close();
  112.  
  113. ?>
  114. </body>
  115. </html>
Add Comment
Please, Sign In to add comment