Глядя на эту часть:
if($username && $password){
while($data = mysqli_fetch_array($rs)){
if($username == $data[1]){
if($password == $data[2]){
Вы должны быть осторожны при чтении $data
. Проще говоря, массив $data
индексируется отдельно для каждой строки, начиная с 0, поэтому $data[1]
и $data[2]
относятся ко всем вторым и третьим строкам набора результатов, но вы на самом деле не читаете никаких полей результатов.
Правильный и чистый путь будет:
if($username && $password){
$data = mysqli_fetch_array($rs);
foreach ($data as $row)
{
$username = $row['field_name_with_username];
$password = $row['field_name_with_password];
... then whatever you need to do afterwards with those variables
}
Если вы предпочитаете держаться подальше от цикла foreach, вы можете использовать while или for, но вам нужно определить счетчик взаимодействий (то есть $i = 0;
перед входом в цикл и $i++;
непосредственно перед концом каждой итерации) и на каждом проходе доступ $data[$i]['field_name_with_username']
и $data[$i]['field_name_with_password']