1

Не могу решить проблему Warning: mysql_fetch_assoc() expects parameter 1 to be resource, object given in W:\domains\mytestsql.com\index.php on line 5

<?php
    if(isset($_POST['done'])){
    $mysqli=new mysqli('localhost', 'root', '', 'login');
    $mysqli->query("SET NAMES TO `utf8`");
    $query=mysql_fetch_assoc($mysqli->query("SELECT * FROM `users` WHERE `login`='".$_POST['login']."' AND `password`='".$_POST['password']."'"));
    if($query){
        echo "Пользователь найден";
    }
    else{
        echo "Пользователь не найден";
    }
    }

?>

<h1>Log in</h1>

<form action="" method="post">
    <label>login</label>
    <br>
    <input type="text" name="login"/>
    <hr>
    <label>password</label>
    <br>
    <input type="password" name="password"/>
    <hr>
    <input type="submit" name="done" value="done"/>
</form>
NeonRio
  • 11

1 Answers1

0

Пример из php мануала (исправил под вашу ситуацию):

if(isset($_POST['done'])){
     $mysqli=new mysqli('localhost', 'root', '', 'login');
     $mysqli->query("SET NAMES TO `utf8`");
     $result = $mysqli->query("SELECT * FROM `users` WHERE `login`='".$_POST['login']."' AND `password`='".$_POST['password']."'"));

     if (!$result) {
          echo "Could not successfully run query from DB";
          exit;
     }

     if (mysql_num_rows($result) == 0) {
          echo "No rows found, nothing to print so am exiting";
          exit;
     }

     $query = mysql_fetch_assoc($result);

     if ($query) {
          echo "Пользователь найден";
     } else {
          echo "Пользователь не найден";
     }
}

Нужно убедиться что вы получили нужный результат из БД, только потом использоваться функцию mysql_fetch_assoc ( resource $result )

Daniil
  • 278