Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] SELECT x FROM y WHERE..., Mam połączenie z bazą, ale część kodu nie działa.
Włodzimierz
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 30.11.2013

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


Witam.
Chciałbym dodać do formularza rejestracji sprawdzanie, czy nik jest już zarejestrowany.
Kod pochodzi stąd: http://www.developphp.com/view.php?tid=1187
Łącze się z bazą bez problemu, całość działa- informuje o takich rzeczach, czy nik jest za krótki, czy rozpoczyna się literą itp, ale nie może sobie poradzić ze sprawdzaniem, czy nik jest już zarejestrowany przez innego użytkownika(Zawsze otrzymuję wiadomość "admin is OK")

Zmienna $sql_uname_check z powyższego linku u mnie wygląda tak:
  1. $sql_uname_check = mysql_query("SELECT username FROM users WHERE username='$username' LIMIT 1");

Kombinuje na wszelkie możliwe sposoby, lecz zapewne diabeł tkwi w szczegółach(lub całkowicie źle to interpretuję), i skrypt nie wyszukuje ników z kolumny username.
Screen mojej bazy danych phpmyadmin:
http://zapodaj.net/5e3aaaf255441.png.html

Co robię nie tak?
Aa- wykorzystuję MySqli, nie wiem, czy to ma jakieś znaczenie.
Go to the top of the page
+Quote Post
Turson
post
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Cytat
Aa- wykorzystuję MySqli, nie wiem, czy to ma jakieś znaczenie.

Tak, bo używasz mysql_query, które jest zarezerwowane dla MySQL a nie MySQLi

Ten post edytował Turson 6.01.2014, 12:48:02
Go to the top of the page
+Quote Post
Włodzimierz
post
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 30.11.2013

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


Zmieniłem mysql_query na mysqli_query oraz mysql_num_rows na mysqli_num_rows, i niestety dalej to samo.
Mój kod:

  1. <?php
  2. if(isset($_POST["name2check"]) && $_POST["name2check"] != ""){
  3. include_once 'config.php';
  4. mysqli_connect($db_host,$db_username,$db_password,$db_name) or die('error'.mysql_error());
  5. $username = preg_replace('#[^a-z0-9]#i', '', $_POST['name2check']);
  6. $sql_uname_check = mysqli_query("SELECT username FROM users WHERE username='$username' LIMIT 1");
  7. $uname_check = mysqli_num_rows($sql_uname_check);
  8. if (strlen($username) < 4) {
  9. echo '4 - 15 characters please';
  10. exit();
  11. }
  12. if (is_numeric($username[0])) {
  13. echo 'First character must be a letter';
  14. exit();
  15. }
  16. if ($uname_check < 1) {
  17. echo '<strong>' . $username . '</strong> is OK';
  18. exit();
  19. } else {
  20. echo '<strong>' . $username . '</strong> is taken';
  21. exit();
  22. }
  23. }
  24. ?>
  25.  
  26.  
  27.  
  28.  
  29. <html>
  30. <head>
  31. <script type="text/javascript" language="javascript">
  32. function checkusername(){
  33. var status = document.getElementById("usernamestatus");
  34. var u = document.getElementById("uname").value;
  35. if(u != ""){
  36. status.innerHTML = 'checking...';
  37. var hr = new XMLHttpRequest();
  38. hr.open("POST", "reg.php", true);
  39. hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  40. hr.onreadystatechange = function() {
  41. if(hr.readyState == 4 && hr.status == 200) {
  42. status.innerHTML = hr.responseText;
  43. }
  44. }
  45. var v = "name2check="+u;
  46. hr.send(v);
  47. }
  48. }
  49. </script>
  50. </head>
  51. <body>
  52. <input type="text" name="uname" id="uname" onBlur="checkusername()" maxlength="15" />
  53. <span id="usernamestatus"></span>
  54. </body>
  55. </html>
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #4





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

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


  1. $sql_uname_check = mysqli_query("SELECT username FROM users WHERE username='$username' LIMIT 1");
  2. $uname_check = mysqli_num_rows($sql_uname_check);
  3. if ($uname_check < 1) {
  4. echo '<strong>' . $username . '</strong> is OK';
  5. exit();
  6. }

Jeśli jest <1 (czyli 0), to wedy 'is OK' (IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
Włodzimierz
post
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 30.11.2013

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


No tak. Pewnie dlatego, że nie może dostać sie do tej kolumny(username), to też nie sprawdzi, czy w niej jest taki nick, więc dlatego zmienna wynosi 0.


Edit:
Zainstalowałem na test forum na zwykłym MySQL, i mimo to nie działa.

Ten post edytował Włodzimierz 7.01.2014, 20:17:53
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 18:46