Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [MySQL][PHP]Rekord nie dodaje się do bazy.
Gruchol
post 24.01.2015, 13:25:00
Post #1





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 28.11.2014

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


Witam,

Napisałem taki kod :

  1. <?php
  2. $db = mysqli_connect('localhost', 'root', '', 'baza');
  3. $zapytanie = mysqli_query($db, "SELECT * FROM uzytkownicy");
  4. $dane = mysqli_fetch_assoc($zapytanie);
  5.  
  6. $login = $_POST["login"];
  7. $haslo = $_POST["haslo"];
  8. $haslopowtorz = $_POST["haslopowtorz"];
  9. $email = $_POST["email"];
  10. if(isset($_POST['wyslij'])) {
  11.  
  12. if(empty($login AND $haslo AND $haslopowtorz AND $email)) {
  13. echo "<div class=formularz>Wypełnij wszystkie pola.</div>";
  14. $sprawdz1 = '0';
  15. }
  16. else {
  17. $sprawdz1 = '1';
  18. }
  19. }
  20.  
  21. $loginpolicz = strlen($login);
  22. $haslopolicz = strlen($haslo);
  23. $emailpolicz = strlen($email);
  24.  
  25. if(!empty($haslo)) {
  26. if($haslo != $haslopowtorz) {
  27. $sprawdz2 = '0';
  28. echo "Hasła nie są identyczne.<br>";
  29. }
  30. else {
  31. $sprawdz2 = '1';
  32. }
  33. }
  34.  
  35. if($loginpolicz < '4' AND (!empty($login))) {
  36. $sprawdz3 = '0';
  37. echo "Login musi mieć conajmniej 5 znaków.<br>";
  38. }
  39. if($loginpolicz >= '5') {
  40. $sprawdz3 = '1';
  41. }
  42.  
  43. if($haslopolicz < '8' AND (!empty($haslo))) {
  44. $sprawdz4 = '0';
  45. echo "Hasło musi mieć conajmniej 8 znaków.";
  46. }
  47. if($haslopolicz >= '8') {
  48. $sprawdz4 = '1';
  49. }
  50. if(!empty($email)) {
  51. if (!ereg("^.+@.+\\..+$", $email)) {
  52. echo "Podany adres jest nieprawidłowy<br />";
  53. } else {
  54. $sprawdz5 = '1';
  55. }
  56. }
  57. if(mysqli_num_rows(mysqli_query($db, "SELECT nick FROM uzytkownicy WHERE nick='$login'"))>0) {
  58. echo 'Taki użytkownik już istnieje';
  59. }else {
  60. $sprawdz6 = '1';
  61. }
  62. if(mysqli_num_rows(mysqli_query($db, "SELECT email FROM uzytkownicy WHERE email='$email'"))>0) {
  63. echo 'Taki email już istnieje w bazie.';
  64. }else {
  65. $sprawdz7 = '1';
  66. }
  67.  
  68. if($sprawdz1 == '1' AND $sprawdz2 == '1' AND $sprawdz2 == '1' AND $sprawdz3 == '1' AND $sprawdz4 == '1' AND $sprawdz5 == '1' AND $sprawdz6 == '1' AND $sprawdz7 == '1' ) {
  69. mysqli_query($db, "INSERT INTO uzytkownicy (`id`, `nick`, `haslo`, `email`, `wpln`, `punkty`) VALUES (NULL, '$login', '$haslo', '$email', '0', '0'");
  70. }
  71.  
  72. ?>


I problem polega na tym, że gdy wpiszę w formularzu wszystko dobrze to użytkownik nie dodaje się do bazy.

Gdzie jest błąd ?

Z góry dziękuję i pozdrawiam.
Go to the top of the page
+Quote Post
nospor
post 24.01.2015, 13:28:56
Post #2





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




Temat: Jak poprawnie zada pytanie
A sam znajdziesz 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
mmmmmmm
post 24.01.2015, 13:29:45
Post #3





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


Masz zły warunek. Dodanie powinno byc w ELSE.
Zresztą to nie jedyny błąd w tym kodzie.
EDIT: Coś mi się pomyliło...

Ten post edytował mmmmmmm 24.01.2015, 13:31:40
Go to the top of the page
+Quote Post
Gruchol
post 24.01.2015, 14:13:25
Post #4





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 28.11.2014

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


Cytat(nospor @ 24.01.2015, 13:28:56 ) *
Temat: Jak poprawnie zada pytanie
A sam znajdziesz odpowiedź


Zastosowałem się do tego :

  1. $sql = 'jakieś zapytanie';
  2. echo 'ZAPYTANIE:'.$sql;
  3. mysql_query($sql) or die('BŁĄD:'.mysql_error());


I wywala teraz to :

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in E:\XAMPP\htdocs\register.php on line 51

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in E:\XAMPP\htdocs\register.php on line 104

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in E:\XAMPP\htdocs\register.php on line 109
ZAPYTANIE:
Warning: mysqli_query() expects at least 2 parameters, 1 given in E:\XAMPP\htdocs\register.php on line 118

Warning: mysqli_error() expects exactly 1 parameter, 0 given in E:\XAMPP\htdocs\register.php on line 118
BŁĄD:
Go to the top of the page
+Quote Post
nospor
post 24.01.2015, 14:56:45
Post #5





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




I teraz poczytaj te komunikaty....
Masz bledy zapytan.

I nie:.mysql_error a odpowiednik dla mysqli
Wkoncu uzywasz mysqli a nie mysql. Patrz co przepisujesz.

I error masz dodac do kazdego mysqli_query


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

"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
Gruchol
post 25.01.2015, 15:22:23
Post #6





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 28.11.2014

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


Zmieniłem na mysqli i wyskakuje cały czas to samo.

Błędy które się wyświetlają są to błędy które sprawdzają czy email istnieje i nie rozumiem dla czego przez to miało by nie działać zapytanie z dodaniem użytkownika.

Jest ktoś w stanie pomóc ?
Go to the top of the page
+Quote Post
nospor
post 25.01.2015, 17:00:53
Post #7





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




Jak dla mnie dostales pełną i poprawną odpowiedź. ALbo nie umiesz przeczytać co dostajesz, albo źle zastosowałes podane wskazowki... Pokaz kod po Twoich poprawkach i jeszcze raz dokładnie co dostajesz


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

"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
Gruchol
post 25.01.2015, 18:18:27
Post #8





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 28.11.2014

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


  1. Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in E:\XAMPP\htdocs\register.php on line 102
  2.  
  3. Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in E:\XAMPP\htdocs\register.php on line 107


Po wypełnieniu formularza :

  1. ZAPYTANIE:
  2. Warning: mysqli_query() expects at least 2 parameters, 1 given in E:\XAMPP\htdocs\register.php on line 116
  3.  
  4. Warning: mysqli_error() expects exactly 1 parameter, 0 given in E:\XAMPP\htdocs\register.php on line 116
  5. BŁĄD:



Cały kod :

http://wklej.org/id/1608707/
Go to the top of the page
+Quote Post
nospor
post 25.01.2015, 18:29:50
Post #9





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




$sql = mysqli_query($db, "INSERT INTO uzytkownicy SET (`id`, `nick`, `haslo`, `email`, `wpln`, `punkty`) VALUES (NULL, '$login', '$haslo', '$email', '0', '0'");
echo 'ZAPYTANIE:'.$sql;
mysqli_query($sql) or die('BŁĄD:'.mysqli_error());
Przeczytaj jeszcze raz temat co ci podalem. Tym razem postaraj sie zrozumiec te jedno proste polecenie. Ja naprawde nie mam sily tego poraz 1001 wyjasniac, bo tu nie ma co wyjasniac... postaraj sie odrozniac ZAPYTANIE od WYKONANIA ZAPYTANIA.


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

"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
Gruchol
post 25.01.2015, 18:49:09
Post #10





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 28.11.2014

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


Próbuje to zrobić tak :

$sql = '$db, "INSERT INTO uzytkownicy SET (`id`, `nick`, `haslo`, `email`, `wpln`, `punkty`) VALUES (NULL, '$login', '$haslo', '$email', '0', '0'';
Jednak wywala taki błąd :


Parse error: syntax error, unexpected '$login' (T_VARIABLE) in E:\XAMPP\htdocs\register.php on line 114

Ten post edytował Gruchol 25.01.2015, 18:49:26
Go to the top of the page
+Quote Post
patry6123
post 25.01.2015, 19:28:14
Post #11





Grupa: Zarejestrowani
Postów: 72
Pomógł: 11
Dołączył: 4.12.2014

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


Zacznijmy od tego, że powinno być tak:

  1. $sql = mysqli_query($db, "INSERT INTO uzytkownicy SET (`id`, `nick`, `haslo`, `email`, `wpln`, `punkty`) VALUES (NULL, '$login', '$haslo', '$email', '0', '0 ");
Go to the top of the page
+Quote Post
Gruchol
post 25.01.2015, 20:10:19
Post #12





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 28.11.2014

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


ZAPYTANIE:
Warning: mysqli_query() expects at least 2 parameters, 1 given in E:\XAMPP\htdocs\register.php on line 116

Warning: mysqli_error() expects exactly 1 parameter, 0 given in E:\XAMPP\htdocs\register.php on line 116
BŁĄD:

Coś takiego wyrzuca.

Ten post edytował Gruchol 25.01.2015, 20:10:29
Go to the top of the page
+Quote Post
patry6123
post 25.01.2015, 20:20:10
Post #13





Grupa: Zarejestrowani
Postów: 72
Pomógł: 11
Dołączył: 4.12.2014

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


  1. $sql = mysqli_query($db, "INSERT INTO uzytkownicy (`id`, `nick`, `haslo`, `email`, `wpln`, `punkty`) VALUES (NULL, '$login', '$haslo', '$email', '0', '0 ");

a zobacz teraz
Go to the top of the page
+Quote Post
Gruchol
post 25.01.2015, 20:22:15
Post #14





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 28.11.2014

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


Cały czas to samo.
Go to the top of the page
+Quote Post
trueblue
post 25.01.2015, 20:24:38
Post #15





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


'0 ");


--------------------
Go to the top of the page
+Quote Post
patry6123
post 25.01.2015, 20:27:21
Post #16





Grupa: Zarejestrowani
Postów: 72
Pomógł: 11
Dołączył: 4.12.2014

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


To ja już kurna nie wiem o co chodzi. Tak swoją drogą po co Ci mysqli_query? Nie możesz użyć mysql_query?


Ten post edytował patry6123 25.01.2015, 20:30:45
Go to the top of the page
+Quote Post
Gruchol
post 25.01.2015, 20:28:03
Post #17





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 28.11.2014

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


Zmieniłem na to :

$sql = mysqli_query($db, "INSERT INTO uzytkownicy (`id`, `nick`, `haslo`, `email`, `wpln`, `punkty`) VALUES (NULL, '$login', '$haslo', '$email', '0', '0' ");
Jednak cały czas to samo.
Go to the top of the page
+Quote Post
patry6123
post 25.01.2015, 20:30:51
Post #18





Grupa: Zarejestrowani
Postów: 72
Pomógł: 11
Dołączył: 4.12.2014

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


Jakie typy danych mają te pola? `wpln` i `punkty`

  1. mysqli_query($db, "INSERT INTO uzytkownicy (`id`, `nick`, `haslo`, `email`, `wpln`, `punkty`) VALUES (NULL, '$login', '$haslo', '$email', '0', '0 ");

a wpisz to bez $sql =

Ten post edytował patry6123 25.01.2015, 20:32:30
Go to the top of the page
+Quote Post
Gruchol
post 25.01.2015, 20:44:15
Post #19





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 28.11.2014

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


Są to dane liczbowe.

Nic to nie daje.

Gdy usuwam to :

mysqli_query($sql) or die('BŁĄD:'.mysqli_error());

Nie wyświetla się żaden błąd ale też nic się nie dodaje do bazy.

Może zrobiłem gdzieś błąd w strukturze bazy ?

http://screenshooter.net/101736853/tresqjw
Go to the top of the page
+Quote Post
patry6123
post 25.01.2015, 21:28:20
Post #20





Grupa: Zarejestrowani
Postów: 72
Pomógł: 11
Dołączył: 4.12.2014

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


  1. mysqli_query($db, "INSERT INTO uzytkownicy (`id`, `nick`, `haslo`, `email`, `wpln`, `punkty`) VALUES (NULL, '$login', '$haslo', '$email', 0, 0");


Do jasnej ciastnej. Po jaką chorobę dwa razy robisz mysqli_query?questionmark.gif Nie rozumiesz że raz wystarczy? Usuń to mysqli_query($sql) i będzie dobrze, albo podaj tutaj jeszcze raz cały kod.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 27.04.2024 - 22:29