Advertisement
Guest User

Untitled

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