Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Rekord nie dodaje się do bazy.
Forum PHP.pl > Forum > Przedszkole
Gruchol
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.
nospor
Temat: Jak poprawnie zada pytanie
A sam znajdziesz odpowiedź
mmmmmmm
Masz zły warunek. Dodanie powinno byc w ELSE.
Zresztą to nie jedyny błąd w tym kodzie.
EDIT: Coś mi się pomyliło...
Gruchol
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:
nospor
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
Gruchol
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 ?
nospor
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
Gruchol
  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/
nospor
$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.
Gruchol
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
patry6123
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 ");
Gruchol
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.
patry6123
  1. $sql = mysqli_query($db, "INSERT INTO uzytkownicy (`id`, `nick`, `haslo`, `email`, `wpln`, `punkty`) VALUES (NULL, '$login', '$haslo', '$email', '0', '0 ");

a zobacz teraz
Gruchol
Cały czas to samo.
trueblue
'0 ");
patry6123
To ja już kurna nie wiem o co chodzi. Tak swoją drogą po co Ci mysqli_query? Nie możesz użyć mysql_query?
Gruchol
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.
patry6123
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 =
Gruchol
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
patry6123
  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.
Gruchol
http://wklej.org/id/1609077/

Nie wyświetla się żaden błąd i dane nie zapisują się do bazy.
borabora
nawias
  1. mysqli_query($db, "INSERT INTO uzytkownicy (`id`, `nick`, `haslo`, `email`, `wpln`, `punkty`) VALUES (NULL, '$login', '$haslo', '$email', '0', '0' )");
patry6123
  1. mysqli_query($db, "INSERT INTO uzytkownicy (`id`, `nick`, `haslo`, `email`, `wpln`, `punkty`) VALUES (NULL, '$login', '$haslo', '$email', 0, 0 )");


i typ danych
Gruchol
Bingo, działa super. Wielkie dzięki smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.