Advertisement
adusq

bibl.1

May 26th, 2019
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.46 KB | None | 0 0
  1. <?php
  2.  
  3. class User{
  4. public $userId = "";
  5. public $name = "";
  6. public $surname = "";
  7. public function GetInichaly(){
  8. return substr($this->name, 0,1).substr($this->surname, 0,1);
  9. }
  10. }
  11.  
  12. $host = '127.0.0.1';
  13. $db = 'pdo';
  14. $user = 'root';
  15. $pass = '';
  16. $charset = 'utf8mb4';
  17.  
  18. $dsn = "mysql:host=$host;dbname=$db;charset=$charset";
  19.  
  20. try {
  21. $pdo = new PDO($dsn, $user, $pass); //tworzenie obiektu
  22.  
  23. $stmt = $pdo->prepare('SELECT * FROM User WHERE name LIKE :part'); //bindowanie, parametr part zastapiony na %a%
  24.  
  25. $stmt->bindValue(':part', '%a%', PDO::PARAM_STR); //parametr typu string
  26.  
  27. $stmt->execute();
  28.  
  29. echo $stmt->rowCount(); //licznik wierszy, ile ludzi udalo sie pozyskac
  30. if($stmt->rowCount() >0){
  31. echo '<table border="1" width="100%">'; //budowanie tablicy htmlowej wyswietlajacej dane
  32. while($row = $stmt->fetchObject ("User" )){ // przechwytuje obiekt, ma postac obiekt klasy user
  33. echo '<tr>
  34. <td>',$row->userId,'</td>
  35. <td>',$row->name,'</td>
  36. <td>',$row->surname,'</td>
  37. <td>',$row->GetInichaly(),'</td>
  38. </tr>'; //metoda pobierajaca inicjaly wyzej
  39.  
  40.  
  41. }
  42. echo '</table>';
  43.  
  44. }
  45.  
  46. $stmt = $pdo->prepare('SELECT
  47. *
  48. FROM
  49. Address
  50. INNER JOIN
  51. User
  52. ON Address.userId = User.userId
  53. WHERE
  54. User.name LIKE :part'); //dane z adresu polaczone z uzytkownikiem ktorego imie zawiera litere A
  55.  
  56. $stmt->bindValue(':part', '%a%', PDO::PARAM_STR);
  57.  
  58. $stmt->execute();
  59. echo $stmt->rowCount();
  60. if($stmt->rowCount() >0){
  61. echo '<table border="1" width="100%">';
  62. while($row = $stmt->fetchObject ()){ // przechwyci do klasy std, jesli nic nie wpiszemy
  63. echo '<tr>
  64. <td>',$row->addressId,'</td>
  65. <td>',$row->street,'</td>
  66. <td>',$row->houseNumber,'</td>
  67. </tr>';
  68.  
  69.  
  70. }
  71. echo '</table>';
  72.  
  73. //Liczba użytkowników dla poszczególnych książek:
  74. $stmt = $pdo->prepare('SELECT
  75. book.title,
  76. wypozyczenia.liczbawypozyczen
  77. FROM
  78. Book
  79. INNER JOIN
  80. (
  81. select
  82. userHasBook.bookId,
  83. count(UserHasBook.userHasBookId) as liczbaWypozyczen
  84. from
  85. UserHasBook
  86. Group by UserHasbookId
  87.  
  88. ) as wypozyczenia
  89. ON Book.BookId = wypozyczenia.bookId);
  90.  
  91. $stmt->execute();
  92.  
  93. echo $stmt->rowCount();
  94. if($stmt->rowCount() >0){
  95. echo '<table border="1" width="100%">';
  96. while($row = $stmt->fetchObject ()){
  97. echo '<tr>
  98. <td>',$row->title,'</td>
  99. <td>',$row->liczbawypozyczen,'</td>
  100.  
  101. </tr>'; /
  102.  
  103.  
  104. }
  105. echo '</table>';
  106.  
  107. }
  108.  
  109. }
  110.  
  111. } catch (\PDOException $e) {
  112. throw new \PDOException($e->getMessage(), (int)$e->getCode());
  113. }
  114.  
  115. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement