2015-06-02 2 views
1

ИТАК, когда я войти в систему на странице я получаю эту ошибкуPHP Проверьте Имя пользователя Exists

Предупреждение: mysql_num_rows(): поставляется аргумент не является допустимым MySQL результат ресурсов в/главная/a1982502/public_html/test3/register.php на линии 55

Это PHP

<?php 
if(isset($_POST['submit'])) { 
    $servername = "mysql10.000webhost.com"; 
    $username = "a1982502_test"; 
    $password = ""; 
    $dbname = "a1982502_test"; 

    $password1 = $_POST['password1']; 
    $password2 = $_POST['password2']; 
    $username1 = $_POST['username1']; 
    $email = $_POST['email']; 
    if(!empty($username) && !empty($password1) && !empty($password2) && !empty($email)) { 
     if($password1 == $password2) { 
      $conn = new mysqli($servername, $username, $password, $dbname); 
      //send data 
      $sql = "SELECT COUNT(*) FROM users WHERE user = '$username1'"; 
      if (mysql_num_rows($sql) > 0) { 
       echo "Username already exists"; 
       mysqli_close($conn); 
       exit(); 
      } else { 
       $password1 = md5($password1); 
       $sql = "INSERT INTO users (id, user, email, pass) VALUES (NULL, '$username1', '$email', '$password1')"; 
       if (mysqli_query($conn, $sql)) { 
        echo "Registered!"; 
       } 
       mysqli_close($conn); 
       exit(); 
      }   
     } else { 
      //error 
      Echo "Password is wrong"; 

      exit(); 
     } 
    } 
} 
?> 
+2

MySQL против MySQLi и много плохих практик, таких как md5 –

+0

Спасибо за помощь Дагон я думаю ?? – David

+0

Рассматривая im new для php? – David

ответ

-1

коррекция Сделайте, как показано ниже

$sql = "SELECT * FROM users WHERE user = '$username1'"; 
if ($result=mysqli_query($conn,$sql)) 
{ 
    // Check no of rows 
    if(mysqli_num_rows($result)) 
    { 
      echo "Username already exists"; 
      mysqli_close($conn); 
      exit(); 
    }else 
    { 
    // Register 
      $password1 = md5($password1); 
      $sql = "INSERT INTO users (id, user, email, pass) VALUES (NULL, '$username1', '$email', '$password1')"; 
      if (mysqli_query($conn, $sql)) 
      echo "Registered!"; 
      mysqli_close($conn); 
      exit(); 
    } 

}else 
{ 
    // Query failed 
    echo("Error description: " . mysqli_error($conn)); 
} 
-1

вам необходимо изменить запрос, чтобы выбрать * из I Вместо того, чтобы работать с mysql_num_rows(), выберите count count (*).

Я вижу, что вы не вызываете mysql_query() в любом месте. Чтобы действительно запустить запрос, вам необходимо передать эту функцию. Вы можете также использовать MySQLi Я гавань используемый классический PHP в то время, так вот непроверенный образец то, что должно работать

<?php 
if(isset($_POST['submit'])) 
{ 
    $servername = "mysql10.000webhost.com"; 
    $username = "a1982502_test"; 
    $password = ""; 
    $dbname = "a1982502_test"; 

    $password1 = $_POST['password1']; 
    $password2 = $_POST['password2']; 
    $username1 = $_POST['username1']; 
    $email = $_POST['email']; 

    if(!empty($username) && !empty($password1) && !empty($password2) && !empty($email)) 
    { 
     if($password1 == $password2) 
     { 
      $conn = new mysqli($servername, $username, $password, $dbname); 
      //send data 
      $sql = mysql_query("SELECT * FROM users WHERE user = '$username1'"); 

      if (mysql_num_rows($sql) > 0) 
      { 
       echo "Username already exists"; 
       mysqli_close($conn); 
       exit(); 
      } 
      else 
      { 
       $password1 = md5($password1); 
       $sql = mysql_query("INSERT INTO users (id, user, email, pass) VALUES (NULL, '$username1', '$email', '$password1')"); 

       mysqli_close($conn); 
       exit(); 
      }   
     } 
     else 
     { 
      //error 
      Echo "Password is wrong"; 
      exit(); 
     } 
    } 
} 
?> 
+0

Нет, ему нужно запустить его (querry) и использовать правый API –

+0

Что вы имеете в виду? – David

+0

Как вы думаете, что ваш счет, вы передаете (неправильную) функцию строку –

1

Вы не запустили запрос. После инициализации $ SQL это сделать,

$result = mysqli_query($conn, $sql); 

Тогда вы можете позвонить mysqli_num_rows ($ результат).

+0

mysql или mysqli вы думаете? –

+0

Что вы имеете в виду? Я просто говорю, что читать о MySQLi это лучше и актуальнее. – Mirodinho

+0

как насчет того, как вы снова читаете его код –