Gruchol
24.01.2015, 13:25:00
Witam,
Napisałem taki kod :
<?php
$db = mysqli_connect('localhost', 'root', '', 'baza');
$zapytanie = mysqli_query($db, "SELECT * FROM uzytkownicy");
$dane = mysqli_fetch_assoc($zapytanie);
$login = $_POST["login"];
$haslo = $_POST["haslo"];
$haslopowtorz = $_POST["haslopowtorz"];
$email = $_POST["email"];
if(isset($_POST['wyslij'])) {
if(empty($login AND
$haslo AND
$haslopowtorz AND
$email)) { echo "<div class=formularz>Wypełnij wszystkie pola.</div>"; $sprawdz1 = '0';
}
else {
$sprawdz1 = '1';
}
}
$loginpolicz = strlen($login); $haslopolicz = strlen($haslo); $emailpolicz = strlen($email);
if($haslo != $haslopowtorz) {
$sprawdz2 = '0';
echo "Hasła nie są identyczne.<br>"; }
else {
$sprawdz2 = '1';
}
}
if($loginpolicz < '4' AND
(!empty($login))) { $sprawdz3 = '0';
echo "Login musi mieć conajmniej 5 znaków.<br>"; }
if($loginpolicz >= '5') {
$sprawdz3 = '1';
}
if($haslopolicz < '8' AND
(!empty($haslo))) { $sprawdz4 = '0';
echo "Hasło musi mieć conajmniej 8 znaków."; }
if($haslopolicz >= '8') {
$sprawdz4 = '1';
}
if (!ereg("^.+@.+\\..+$", $email)) { echo "Podany adres jest nieprawidłowy<br />"; } else {
$sprawdz5 = '1';
}
}
if(mysqli_num_rows(mysqli_query($db, "SELECT nick FROM uzytkownicy WHERE nick='$login'"))>0) {
echo 'Taki użytkownik już istnieje'; }else {
$sprawdz6 = '1';
}
if(mysqli_num_rows(mysqli_query($db, "SELECT email FROM uzytkownicy WHERE email='$email'"))>0) {
echo 'Taki email już istnieje w bazie.'; }else {
$sprawdz7 = '1';
}
if($sprawdz1 == '1' AND $sprawdz2 == '1' AND $sprawdz2 == '1' AND $sprawdz3 == '1' AND $sprawdz4 == '1' AND $sprawdz5 == '1' AND $sprawdz6 == '1' AND $sprawdz7 == '1' ) {
mysqli_query($db, "INSERT INTO uzytkownicy (`id`, `nick`, `haslo`, `email`, `wpln`, `punkty`) VALUES (NULL, '$login', '$haslo', '$email', '0', '0'");
}
?>
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
24.01.2015, 13:28:56
mmmmmmm
24.01.2015, 13:29:45
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
24.01.2015, 14:13:25
Cytat(nospor @ 24.01.2015, 13:28:56 )

Zastosowałem się do tego :
$sql = 'jakieś zapytanie';
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
24.01.2015, 14:56:45
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
25.01.2015, 15:22:23
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
25.01.2015, 17:00:53
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
25.01.2015, 18:18:27
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in E:\XAMPP\htdocs\register.php on line 102
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 :
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:
Cały kod :
http://wklej.org/id/1608707/
nospor
25.01.2015, 18:29:50
$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
25.01.2015, 18:49:09
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
25.01.2015, 19:28:14
Zacznijmy od tego, że powinno być tak:
$sql = mysqli_query($db, "INSERT INTO uzytkownicy SET (`id`, `nick`, `haslo`, `email`, `wpln`, `punkty`) VALUES (NULL, '$login', '$haslo', '$email', '0', '0 ");
Gruchol
25.01.2015, 20:10:19
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
25.01.2015, 20:20:10
$sql = mysqli_query($db, "INSERT INTO uzytkownicy (`id`, `nick`, `haslo`, `email`, `wpln`, `punkty`) VALUES (NULL, '$login', '$haslo', '$email', '0', '0 ");
a zobacz teraz
Gruchol
25.01.2015, 20:22:15
Cały czas to samo.
trueblue
25.01.2015, 20:24:38
'0 ");
patry6123
25.01.2015, 20:27:21
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
25.01.2015, 20:28:03
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
25.01.2015, 20:30:51
Jakie typy danych mają te pola? `wpln` i `punkty`
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
25.01.2015, 20:44:15
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
25.01.2015, 21:28:20
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?

Nie rozumiesz że raz wystarczy? Usuń to mysqli_query($sql) i będzie dobrze, albo podaj tutaj jeszcze raz cały kod.
Gruchol
25.01.2015, 21:41:30
http://wklej.org/id/1609077/Nie wyświetla się żaden błąd i dane nie zapisują się do bazy.
borabora
25.01.2015, 21:56:26
nawias
mysqli_query($db, "INSERT INTO uzytkownicy (`id`, `nick`, `haslo`, `email`, `wpln`, `punkty`) VALUES (NULL, '$login', '$haslo', '$email', '0', '0' )");
patry6123
25.01.2015, 22:00:28
mysqli_query($db, "INSERT INTO uzytkownicy (`id`, `nick`, `haslo`, `email`, `wpln`, `punkty`) VALUES (NULL, '$login', '$haslo', '$email', 0, 0 )");
i typ danych
Gruchol
25.01.2015, 22:04:21
Bingo, działa super. Wielkie dzięki
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.