Прошу прощения, если это было задано, но я понятия не имею, что искать, чтобы найти ответ.Почему я не могу выделить переменную из массива?
Я только начинаю изучать PHP и занимаюсь простым учебным пособием, где я «вхожу в» базу данных (просто проверяя, соответствует ли адрес электронной почты и пароль тому, что хранится, никакой фактический сеанс не создается) ,
У меня есть этот код:
<?php
include("connectToDb.php");
$loginEmail = $_POST['loginEmail'];
$loginPassword = $_POST['loginPassword'];
$query = mysqli_query($dbc, "SELECT * FROM users WHERE email='$loginEmail'");
$numrows = mysqli_num_rows($query);
if($numrows != 0)
{
while($row = mysqli_fetch_array($query))
{
$dbemail = $row['email'];
$dbpassword = $row['password'];
$dbfirstname = $row['firstName'];
}
if($loginEmail == $dbemail)
{
if ($loginPassword == $dbpassword)
{
echo "Hi ".$row['firstName'].", you are now logged in.";
}
else
{
echo "login failed.";
}
}
}
mysqli_close($dbc);
?>
Но $ строки [ «FirstName»] в эхо-оттисков заявление как пустую строку: «Привет, вы вошли в систему.». Если я использую тот же самый код, но возвращу $ row ['firstName'] с $ dbfirstname в выражении echo, я получаю правильно отформатированное сообщение «Привет, Джейсон, вы вошли в систему».
Эти две переменные должны быть одинаковыми ... почему один работает, а другой нет?
Yup. Сейчас это кажется довольно очевидным. Это то, что я получаю для вставки кода из учебника, не думая об этом на протяжении всего пути ... Есть ли какая-то особая причина, по которой учебник должен «понадобиться» для использования цикла while? Разве он не мог просто назначить $ row и перешел? Остальная часть этого кода предполагает, что был только один найденный экземпляр адреса электронной почты ... В любом случае спасибо за ваш быстрый ответ. – Josh