Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]"...mysqli_num_rows() expects parameter..." o co biega?
nekomata
post 12.11.2010, 07:51:17
Post #1





Grupa: Zarejestrowani
Postów: 314
Pomógł: 44
Dołączył: 12.11.2010
Skąd: UK

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


Witam, niedawno wystartowałem z nauką php i właśnie próbuje zrobić prosty skrypt rejestracji. jednak napotykam się z błędem

  1. Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in X:\xampp\htdocs\testowo\register.php on line 50

a plik register.php wygląda tak
  1. <?php
  2. echo'<div id="part"> Registration<div id="kreska"></div>
  3. <div id="windowcontent">';
  4.  
  5. if(!isset($_POST['nickname']))
  6. {goto a;}
  7.  
  8. require_once('mysqli_connect.php');
  9.  
  10. if(isset($_POST['nickname']))
  11. {
  12. $trimmed = array_map('trim',$_POST);
  13. $nickname = $email = $password = FALSE;
  14.  
  15. //Sprawdza login
  16.  
  17. ('/^[A-ZA-Z]{2,25}$/i',$trimmed['nickname'])){
  18. $nickname = mysqli_real_escape_string($dbc,$trimmed['nickname']);}
  19. else{
  20. echo '<error>Please use letter from A to Z , numbers not allowed.Nickname allowed from 2 to 25 characters</error>';
  21. }
  22.  
  23. //Sprawda Email
  24.  
  25. if(preg_match('/^[\w.-]+@[\w.-]+\.[A-Za-z]{2,6}$/i', $trimmed['email']))
  26. {
  27. $email = mysqli_real_escape_string($dbc,$trimmed['email']);
  28. }
  29. else{
  30. echo '<error>Please input correct email adress.</error>';
  31. }
  32.  
  33. //Sprawdza hasło
  34. if(preg_match ('/^\w(4,20)$/',$trimmed['password']))
  35. {
  36. if ($trimmed['password'] == $trimmed['passwordr'])
  37. {
  38. $password = mysqli_real_escape_string ($dbc,$trimmed['password']);
  39. }
  40. else {
  41. echo'<error>Passwords doesnt match each other.</error>';
  42. echo'Please inpute password from 4 to 20 characters.</eroor>';
  43. }}
  44. if ($nickname && $password && $email){
  45. $qx = "SELECT user_id FROM users WHERE email='" . $username . "'";
  46. $rx = mysqli_query($dbc, $qx);
  47. }
  48.  
  49. $rows = mysqli_num_rows($rx);
  50. if ($rows < 1) {
  51. $a = md5(uniqid(rand(), true));
  52. $q = "INSERT INTO users (email,pass,nickname,activated,registration_date)
  53. Values ('$email','$password','$nickname','$a',NOW() )";
  54. $r = mysqli_query($dbc, $q) or trigger_error ("Zapytanie $q\n<br/>Wywalilo blad : " .mysqli_error($dbc));
  55. if(mysqli_affected_rows($dbc) == 1 ) {
  56. $body = "Thank you for registering at our site.To activate your account just click the link at the bottom\n\n";
  57. $body .= BASE_URL . 'activate.php?x=' . urlencode($email) . "&y=$a";
  58. //mail($trimmed['email'], 'testing-zone.com Activation link.' ,$body, 'from:Admin@downloading-zone.com');
  59. echo '<h3>Thank you for Registering at our site!<br/>Activation email has been sent to'.$email.'</h3>';
  60. }}
  61. else{
  62. echo '<error>For some reason we couldnt register your account.Sorry for problems.</error>';
  63. }
  64.  
  65. a:
  66.  
  67. include('form.html');
  68. }
  69. ?>
  70.  


Po dwoch godzinach googlowania nie mogę załapać o co chodzi.Dodam ze przykład wygląda praktycznie tak samo w książce "Larry Ullman - php 6 i mysql 5 dynamiczne strony www"

BTW. Pierwszy post chciałbym się serdecznie z wszystkimi przywitać a dodatkowo chciałbym podziękować kilku osoba bez których bym się tu nieznalazl a mianowicie "Moim rodzina którzy byli dla mnie zawsze oparciem i przyjaciołom ze szkoły którzy zawsze się ze mnie naśmiewali ......(300 osób dalej) ... chciałbym podziękować tez wujkowi Google oraz (250 osób ) i pani z warzywniaka - te ziemniaki były naprawdę dobre.Tak to chyba wszyscy dziękuje za uwagę.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
nospor
post 12.11.2010, 07:52:37
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Masz bład zapytania. Tu masz napisane jak diagnozować takie bledy:
Temat: Jak poprawnie zada pytanie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
nekomata
post 12.11.2010, 07:58:42
Post #3





Grupa: Zarejestrowani
Postów: 314
Pomógł: 44
Dołączył: 12.11.2010
Skąd: UK

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


Natknąłem się na to już wcześniej jednak nadal nie mogę zanalizować o co biega z tym błędem....
przy princie $rx nie pojawia sie nic nowego na ekranie(przy echo z reszta tez) wiec nie wiem ocb dalej.
Go to the top of the page
+Quote Post
nospor
post 12.11.2010, 08:23:32
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Chodzilo o ten kawałem z mysql_error()... Przecież tam po polsku jest napisane i podane są przyklady...

1) Wlacz wyswietlanie wszystkich bledow (masz w linku napisane jak)
2) Wlaczy mysql_error()
3) mysqli_query() robisz warunkowo, ale już mysqli_num_rows() robisz bezwarunkowo. Nie daje ci to nic do myslenia?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
nekomata
post 12.11.2010, 08:50:24
Post #5





Grupa: Zarejestrowani
Postów: 314
Pomógł: 44
Dołączył: 12.11.2010
Skąd: UK

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


Chyba sobie poradzilem, dzieki.Teraz jedna rzecz mnie nurtuje niby wszystko jest ok ale wyskakuje "BŁĄDz:" (z dla oznaczenia ktore)a po nim nic.Dziwna rzecz,wie ktoś może czemu tak jest?
blad wyskakuje w miejscue zastosowania
  1. mysql_query($sql) or die('BŁĄD:'.mysql_error());


poprawiony kod wyglada tak a
bladz w linijce 52
  1. <?php
  2.  
  3. ini_set('display_errors','1');
  4.  
  5. echo'<div id="part"> Registration<div id="kreska"></div>
  6. <div id="windowcontent">';
  7.  
  8. if(!isset($_POST['nickname']))
  9. {goto a;}
  10. require_once('mysqli_connect.php');
  11.  
  12. if(isset($_POST['nickname']))
  13. {
  14. $trimmed = array_map('trim',$_POST);
  15. $nickname = $email = $password = FALSE;
  16.  
  17. //Sprawdza login
  18.  
  19. ('/^[A-ZA-Z]{2,25}$/i',$trimmed['nickname'])){
  20. $nickname = mysqli_real_escape_string($dbc,$trimmed['nickname']);}
  21. else{
  22. echo '<error>Please use letter from A to Z , numbers not allowed.Nickname allowed from 2 to 25 characters</error>';
  23. }
  24.  
  25. //Sprawda Email
  26.  
  27. if(preg_match('/^[\w.-]+@[\w.-]+\.[A-Za-z]{2,6}$/i', $trimmed['email']))
  28. {
  29. $email = mysqli_real_escape_string($dbc,$trimmed['email']);
  30. }
  31. else{
  32. echo '<error>Please input correct email adress.</error>';
  33. }
  34.  
  35. //Sprawdza hasło
  36. if(preg_match ('/^\w(4,20)$/',$trimmed['password']))
  37. {
  38. if ($trimmed['password'] == $trimmed['passwordr'])
  39. {
  40. $password = mysqli_real_escape_string ($dbc,$trimmed['password']);
  41. }
  42. else {
  43. echo'<error>Passwords doesnt match each other.</error>';
  44. echo'Please inpute password from 4 to 20 characters.</eroor>';
  45. }}
  46. if ($nickname != FALSE){
  47. $qx = "SELECT user_id FROM users WHERE email='" . $nickname . "'";
  48. $rx = mysqli_query($dbc, $qx) or die('BŁĄDx:'.mysql_error());
  49. }
  50. $rows = mysqli_num_rows($rx) or die('BŁĄDz:'.mysql_error());
  51. echo $rows;
  52. print($rows);
  53. if ($rows < 1) {
  54. $a = md5(uniqid(rand(), true));
  55. $q = "INSERT INTO users (email,pass,nickname,activated,registration_date)
  56. Values ('$email','$password','$nickname','$a',NOW() )";
  57. $r = mysqli_query($dbc, $q) or trigger_error ("Zapytanie $q\n<br/>Wywalilo blad : " .mysqli_error($dbc));
  58. if(mysqli_affected_rows($dbc) == 1 ) {
  59. $body = "Thank you for registering at our site.To activate your account just click the link at the bottom\n\n";
  60. $body .= BASE_URL . 'activate.php?x=' . urlencode($email) . "&y=$a";
  61. //mail($trimmed['email'], ' Activation link.' ,$body, 'from:Admin@downloading-zone.com');
  62. echo '<h3>Thank you for Registering at our site!<br/>Activation email has been sent to'.$email.'</h3>';
  63. }}
  64. else{
  65. echo '<error>For some reason we couldnt register your account.Sorry for problems.</error>';
  66. }
  67.  
  68. a:
  69.  
  70. include('form.html');
  71. }
  72. ?>
  73.  


Ten post edytował nekomata 12.11.2010, 08:51:12
Go to the top of the page
+Quote Post
nospor
post 12.11.2010, 08:57:33
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Moj poprzedni post, punkt 1) oraz 3). Tam masz odpowiedź...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
nekomata
post 12.11.2010, 09:01:15
Post #7





Grupa: Zarejestrowani
Postów: 314
Pomógł: 44
Dołączył: 12.11.2010
Skąd: UK

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


Awww.... dzięki, szczerze mowiac jak przeczytałem warunkowanie to pomyślałem o if ale teraz rozumiem i wszystko śmiga. dzięki wielkie
Go to the top of the page
+Quote Post

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 - 05:02