-4
<?php
        include '../../db/db.php';

        $login = $_POST['login'];
        $password = $_POST['password'];

        if (isset($_POST['login'])) { $login = $_POST['login']; 
        if ($login == '') { unset($login);} }
        if (isset($_POST['password'])) { $password=$_POST['password']; 
        if ($password =='') { unset($password);} }

        if (empty($login) or empty($password)) 
            {
            exit ("Заполните все поля!");
            }


        $auth = (" SELECT ('login','password') FROM 'users' WHERE 
        'login'='$login' and 'password'='$password' ");

        $myrow = mysqli_fetch_array($auth);
        if (empty($myrow['password']))
        {
        //если пользователя с введенным логином не существует
        exit ("Извините, введённый вами login или пароль неверный.");
        }

        else {
        if ($myrow['password']==$password) {  
          $_SESSION['login']=$myrow['login']; 
          $_SESSION['id']=$myrow['id'];
         echo "Вы успешно вошли на сайт! <a href='index.php'>Главная 
         страница</a>";
            }
            else {
            exit ("Извините, введённый вами login или пароль неверный.");
            }
            }   
            ?>

Ошибка mysqli_fetch_array() expects parameter 1 to be mysqli_result, string given in ... on line 38 это вот в этой строке: $myrow = mysqli_fetch_array($auth);

Что сделать, чтобы код работал?

insolor
  • 49,104
  • 1
    Что сделать, чтобы код работал? - хотя бы раз открыть документацию и посмотреть какие именно параметры принимают функции и исправить – Алексей Шиманский Aug 29 '17 at 07:59
  • банально вот возьми пример из док http://php.net/manual/ru/mysqli-result.fetch-array.php#refsect1-mysqli-result.fetch-array-examples открой "Пример #2 Процедурный стиль" и проанализируй внимательно что где написано и как нужно. – Алексей Шиманский Aug 29 '17 at 08:08
  • 1
    Это тот самый код, за который РНР все ненавидят. – Ипатьев Aug 29 '17 at 08:28

2 Answers2

0

Пользуйтесь

$query = "

";
$result = $connection->query($query);
if (!$result) die($connection->error);
if ($result->num_rows == 0) exit('Ошибка');

//Одна строка
$myrow = $result->fetch_array(MYSQLI_ASSOC);
$test=$myrow['test'];

//Перебор значений
while ($myrow = $result->fetch_array(MYSQLI_ASSOC)) {
    $test=$myrow['test'];
}
n.osennij
  • 3,063
-1

Для начала подключиться к базе данных:

$link = mysqli_connect("адрес_сервера_SQL", "my_user", "my_password", "my_db");

Реквизиты наверняка указаны в вашем подключаемом файле include '../../db/db.php';

Затем выполнить, собственно запрос

$result = mysqli_query($link, $auth);

И затем уже читать из него:

 $myrow = mysqli_fetch_array($result);
  • а что если подключение к базе данных тоже лежит в подключаемом файле include? – Ипатьев Aug 29 '17 at 08:18