Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Mysqli_Num_Rows() Expects Parameter 1 To Be Mysqli_Result
darney
post 12.12.2011, 08:37:54
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 21.08.2010
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


viewprofile.php
  1. <?php
  2. // Uruchamianie sesji.
  3. require_once('startsession.php');
  4.  
  5. // Wstawianie nagłówka strony.
  6. $page_title = 'Wyświetl profil';
  7. require_once('header.php');
  8.  
  9. require_once('appvars.php');
  10. require_once('connectvars.php');
  11.  
  12. // Przed przejściem do dalszych operacji należy się upewnić, że użytkownik jest zalogowany.
  13. if (!isset($_SESSION['user_id'])) {
  14. echo '<p class="login"><a href="login.php">Zaloguj się</a>, aby uzyskać dostęp do tej strony.</p>';
  15. exit();
  16. }
  17.  
  18. // Wyświetlanie menu nawigacyjnego.
  19. require_once('navmenu.php');
  20.  
  21. // Łączenie się z bazą danych.
  22. $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
  23.  
  24. // Pobieranie danych użytkownika z bazy.
  25. if (!isset($_GET['user_id'])) {
  26. $query = "SELECT username, first_name, last_name, gender, birthdate, city, state, picture FROM mismatch_user WHERE user_id = '" . $_SESSION['user_id'] . "'";
  27. }
  28. else {
  29. $query = "SELECT username, first_name, last_name, gender, birthdate, city, state, picture FROM mismatch_user WHERE user_id = '" . $_GET['user_id'] . "'";
  30. }
  31. $data = mysqli_query($dbc, $query);
  32.  
  33. if (mysqli_num_rows($data) == 1) {
  34. // Znaleziono wiersz z danymi użytkownika, dlatego należy je wyświetlić.
  35. $row = mysqli_fetch_array($data);
  36. echo '<table>';
  37. if (!empty($row['username'])) {
  38. echo '<tr><td class="label">Nazwa użytkownika:</td><td>' . $row['username'] . '</td></tr>';
  39. }
  40. if (!empty($row['first_name'])) {
  41. echo '<tr><td class="label">Imię:</td><td>' . $row['first_name'] . '</td></tr>';
  42. }
  43. if (!empty($row['last_name'])) {
  44. echo '<tr><td class="label">Nazwisko:</td><td>' . $row['last_name'] . '</td></tr>';
  45. }
  46. if (!empty($row['gender'])) {
  47. echo '<tr><td class="label">Płeć:</td><td>';
  48. if ($row['gender'] == 'M') {
  49. echo 'Mężczyzna';
  50. }
  51. else if ($row['gender'] == 'K') {
  52. echo 'Kobieta';
  53. }
  54. else {
  55. echo '?';
  56. }
  57. echo '</td></tr>';
  58. }
  59. if (!empty($row['birthdate'])) {
  60. if (!isset($_GET['user_id']) || ($_SESSION['user_id'] == $_GET['user_id'])) {
  61. // Wyświetlanie dnia urodzenia danemu użytkownikowi.
  62. echo '<tr><td class="label">Data urodzenia:</td><td>' . $row['birthdate'] . '</td></tr>';
  63. }
  64. else {
  65. // Wyświetlanie samego roku pozostałym użytkownikom.
  66. list($year, $month, $day) = explode('-', $row['birthdate']);
  67. echo '<tr><td class="label">Rok urodzenia:</td><td>' . $year . '</td></tr>';
  68. }
  69. }
  70. if (!empty($row['city']) || !empty($row['state'])) {
  71. echo '<tr><td class="label">Miejscowość:</td><td>' . $row['city'] . ', ' . $row['state'] . '</td></tr>';
  72. }
  73. if (!empty($row['picture'])) {
  74. echo '<tr><td class="label">Zdjęcie:</td><td><img src="' . MM_UPLOADPATH . $row['picture'] .
  75. '" alt="Zdjęcie z profilu" /></td></tr>';
  76. }
  77. echo '</table>';
  78. if (!isset($_GET['user_id']) || ($_SESSION['user_id'] == $_GET['user_id'])) {
  79. echo '<p>Czy chcesz <a href="editprofile.php">zmodyfikować profil</a>?</p>';
  80. }
  81. } // Koniec przetwarzania wiersza z danymi użytkownika.
  82. else {
  83. echo '<p class="error">Wystąpił problem przy próbie dostępu do profilu.</p>';
  84. }
  85.  
  86. mysqli_close($dbc);
  87. ?>
  88.  
  89. <?php
  90. // Wstawianie stopki strony.
  91. require_once('footer.php');
  92. ?>
  93.  


startsession.php
  1.  
  2. // Jeśli zmienne sesji nie są ustawione, należy spróbować użyć do tego plików cookie.
  3. if (!isset($_SESSION['user_id'])) {
  4. if (isset($_COOKIE['user_id']) && isset($_COOKIE['username'])) {
  5. $_SESSION['user_id'] = $_COOKIE['user_id'];
  6. $_SESSION['username'] = $_COOKIE['username'];
  7. }
  8. }

Przy próbie oglądnięcia swojego profilu dostaje komunikat.

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /x/x/ftp/x/x/x/viewprofile.php on line 33


Przykład jest skopiowany z gotowych kodów które dostępne są na stronie wydawnictwa helion. Jest to przykład z ksiązki który niestety nie chce funkcjonować.

Uczę się dopiero zarządzać sesjami i użytkownikami dlatego też zwracam się z prośbą o pomoc w rozwiązaniu powyższego problemu.

temat był poruszany dla innego pliku php z tego samego ćwiczenia
http://forums.oreilly.com/topic/50019-warn...2990#entry92990

Ten post edytował darney 12.12.2011, 08:55:48
Go to the top of the page
+Quote Post

Posty w temacie
- darney   [PHP]Mysqli_Num_Rows() Expects Parameter 1 To Be Mysqli_Result   12.12.2011, 08:37:54
- - lukesh   Może się mylę, ale jakoś nie odpowiada mi Twój zap...   12.12.2011, 09:01:19
- - nospor   @lukesh mylisz się i to bardzo. Uczysz kogoś sam n...   12.12.2011, 09:04:01
- - darney   ZAPYTANIE:SELECT username, first_name, last_name, ...   12.12.2011, 09:13:50
- - nospor   Kurcze, skopiowałeś bezmyslnie przykład z linka co...   12.12.2011, 09:14:55
- - darney   zamieniłem na msqli juz na samym początku. [PHP] ...   12.12.2011, 09:15:59
- - nospor   mysqli_query($sql) Tylko, że mysqli wymaga w...   12.12.2011, 09:43:37
- - darney   no właśnie przepisuje po to by analizować dany kod...   12.12.2011, 09:49:48
- - nospor   CytatNie wiem o co chodzi z 2 parametrami. Twój po...   12.12.2011, 09:53:31
- - darney   ale ksiązkowy przykład ma 2 parametry [PHP] pobie...   12.12.2011, 09:57:59
- - nospor   Cytatjedynie ja przepisując twój przykład dałem je...   12.12.2011, 10:02:43
- - darney   ZAPYTANIE: Warning: mysqli_query() [function.mysql...   12.12.2011, 11:20:20
- - nospor   ale mysqli_error() zgodnie z komunikatem błędu wym...   12.12.2011, 11:24:01
- - darney   z edytowałem post. Tam miałem nawalone podwójnie z...   12.12.2011, 11:25:52
- - nospor   No i co z tego? Nadal mysqli_error źle używasz. Te...   12.12.2011, 11:28:19
- - darney   ale co ja mam w środek tam wstawić w error ...   12.12.2011, 11:29:57
- - nospor   Cytatw manualu też nic nie ma...Raczysz żartować.....   12.12.2011, 13:16:28
- - darney   spokojnie to pierwszy rozdział odnośnie zarządzani...   12.12.2011, 14:21:03
- - nospor   Tak, każdy pseudo haker obejdzie to w 10 sekund. N...   12.12.2011, 14:24:28
- - darney   w takim razie jak powinna wyglądać bezpieczna auto...   12.12.2011, 14:29:14
- - nospor   Cały kawałek kodu, który ci zacytowałem, powinien ...   12.12.2011, 14:31:10
- - darney   no tak ale jak to wszystko usunę to się nie zalogu...   12.12.2011, 14:44:15
- - nospor   A próbowałeś? Ja mówiłem o skasowanie tylko tego: ...   12.12.2011, 14:47:13
- - darney   nie no działa. Tylko cookie z tego co doczytałem p...   12.12.2011, 15:01:17
- - nospor   Ciacho może stworzyć każdy user sam bez żadnego pr...   12.12.2011, 15:05:38
- - darney   A jak na danym, serwerze stoi kilka stron i jak da...   12.12.2011, 15:12:20
- - nospor   Jak serwis pada po 10 minutach? Coś ci się zaczyna...   12.12.2011, 15:13:10
- - darney   ehheehhe i kasują się wszystkie konta na facebooku...   12.12.2011, 15:15:59
- - nospor   Nie wszystkich, tylko tych co przez 10 minut nic n...   12.12.2011, 15:17:15
- - darney   Spójrz jeszcze na skrypt logowania i daję już spok...   12.12.2011, 15:20:17
- - nospor   setcookie('user_id', $row['user_i...   12.12.2011, 15:22:47


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 10:08