• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak sprawdzic czy login jest juz w tabeli

Object Storage Arubacloud
0 głosów
380 wizyt
pytanie zadane 2 marca 2019 w PHP przez Jokii Nowicjusz (240 p.)
Witam pisze skrypt rejestracji i chce sprawdzić czy wpisany przez użytkownika login przypadkiem nie znajduje się w bazie.

Próbowałem mysqli_num_rows ale jakoś średnio działa. Pomoże ktoś?
komentarz 2 marca 2019 przez Arkadiusz Waluk Ekspert (287,950 p.)
Może jakiś kod? Bo bez niego to jakoś średnio możemy pomóc ;) Sprawdzenie liczby rekordów powinno działać.
komentarz 2 marca 2019 przez Jokii Nowicjusz (240 p.)
$ile = mysqli_num_rows(mysqli_query("SELECT login FROM users WHERE login = '$login' ");

If ($ile <0)

{

Reszta kodu

}else echo ("nie dziala")

No i po takim zapytaniu wyskakuje mi błąd o wartości i zaczyna się czepiać poprawnego kodu

1 odpowiedź

0 głosów
odpowiedź 2 marca 2019 przez Arkadiusz Waluk Ekspert (287,950 p.)
Zacząć wypadałoby od tego, że mysqli_query wymaga podania dwóch argumentów: http://php.net/manual/en/mysqli.query.php

Zupełnie poza tym: jeśli $login nie jest wcześniej odpowiednio zabezpieczany to możliwe będzie przeprowadzenie ataku SQL injection. Poczytaj o prepared statements, najlepsze zabezpieczenie.
komentarz 2 marca 2019 przez Jokii Nowicjusz (240 p.)
jestem zupełnie zielony i nie rozumiem co piszą na tej stronce, mógłbyś mi to jakoś jaśniej opisać?
komentarz 2 marca 2019 przez Arkadiusz Waluk Ekspert (287,950 p.)

Hm? Jeśli nie rozumiesz co jest w dokumentacji to będziesz miał problem, aby zrobić cokolwiek, bo to właśnie dokumentacja to opisuje.

Tak więc w Twoim kodzie masz:

mysqli_query("SELECT login FROM users WHERE login = '$login' ");

Jak widać do funkcji mysqli_query przekazywany jest jeden argument (string zawierający zapytanie). Dokumentacja pod podanym linkiem pokazuje wyraźnie, że konieczne są dwa argumenty (nieobowiązkowe to te w [ ]):

mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] ) : mixed

 Patrząc niżej można otrzymać wyjaśnienie:

link - Procedural style only: A link identifier returned by mysqli_connect() or mysqli_init()

query - The query string.

Argument pierwszy to musi być uchwyt do połączenia, argument drugi to zapytanie. Ty masz tylko ten drugi argument.

Ponadto jak teraz spojrzałem na całą linię:

$ile = mysqli_num_rows(mysqli_query("SELECT login FROM users WHERE login = '$login' ");

to brakuje CI jednego zamknięcia nawiasu (zamykasz od mysqli_query, a nie zamykasz od mysqli_num_rows).

komentarz 3 marca 2019 przez Jokii Nowicjusz (240 p.)
$ilosc = mysqli_query("SELECT id FROM users WHERE login ='$login'");
                $num = mysqli_num_rows($ilosc);
                if ($num == 0)
                {
                    echo ("nie ma");
                }
                    else echo ("jest");

Co jest w tym nie tak? cały czas pokazuje że zmienna jest w tabeli chociaż wcale jej tam nie ma
komentarz 3 marca 2019 przez Arkadiusz Waluk Ekspert (287,950 p.)
Nie wiem jak może pokazywać że jest skoro ten kod w ogóle jest niepoprawny, nie ma pierwszego argumentu do funkcji mysqli_query, tak jak to opisałem wyżej.
komentarz 3 marca 2019 przez Jokii Nowicjusz (240 p.)
$zapytanie = mysql_query("SELECT * FROM nazwa_tabeli WHERE login ='$login'");

$ilosc_wierszy = mysql_num_rows($zapytanie);

if ($ilosc_wierszy == 0)

{

//co jesli tak

}

a coś takiego będzie działać?
komentarz 3 marca 2019 przez Arkadiusz Waluk Ekspert (287,950 p.)

Jeśli masz wersję PHP >= 7 to nie będzie, funkcje zaczynające się od mysql_ w nim nie istnieją. Jeśli masz niższą wersję to powinno zadziałać, ale używanie funkcji z mysql_ jest mocno niezalecane.

http://php.net/manual/en/intro.mysql.php

This extension is deprecated as of PHP 5.5.0, and has been removed as of PHP 7.0.0. Instead, either the mysqli or PDO_MySQL extension should be used. See also the MySQL API Overview for further help while choosing a MySQL API.

Podobne pytania

0 głosów
3 odpowiedzi 507 wizyt
pytanie zadane 29 czerwca 2018 w PHP przez Kacpu Nowicjusz (160 p.)
0 głosów
1 odpowiedź 251 wizyt
pytanie zadane 10 maja 2019 w PHP przez Ania2019 Użytkownik (530 p.)
0 głosów
2 odpowiedzi 13,921 wizyt
pytanie zadane 13 stycznia 2016 w JavaScript przez termitek12 Użytkownik (890 p.)

92,552 zapytań

141,399 odpowiedzi

319,534 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...