Выберите данные из строки в базе данных - PullRequest
0 голосов
/ 24 ноября 2018

Я создаю страницу профиля, на которой я хочу, чтобы отображалась электронная почта пользователя.Я думал, что это будет довольно простой код, который может быть достигнут с помощью функции выбора из базы данных.Тем не менее, это работает только для одной строки, и я не могу понять, почему.

Это мой оригинальный код

session_start();

$_SESSION["user"] = $username;
$_SESSION["pass"] = $password;
$_SESSION["email"] = $email;
$connection = mysqli_connect ("localhost", "root", "", "picshare");

if ($connection ->connect_error) {
    die("Connection failed: " . $connection->connect_error);
}else{

$query = mysqli_query($connection, "SELECT email FROM login WHERE username='".$_SESSION["user"]."'");
$field = mysqli_fetch_assoc($query); 

    if (!$query)
    {
        die('Error: ' . mysqli_error($con));
    }if(mysqli_num_rows($query) > 0){
        $field = mysqli_fetch_assoc($query);


}else{
echo "error";
$conn->close();

    }}

Когда я пытаюсь повторить $ field, ничего не отображается

            <p class ="right uc"><?php       echo($field['email']);?></p> 

Я повторил код, но вместо использованияВ сеансе я создал переменную

$host = "localhost";
$dbusername = "root";
$dbpassword = "";
$dbname = "picshare";
$user = 'Eniola Olaogun';

$conn = new mysqli ($host, $dbusername, $dbpassword, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}else{

$query = mysqli_query($conn, "SELECT email FROM login WHERE username='".$user."'");
$field = mysqli_fetch_assoc($query); 

    if (!$query)
    {
        die('Error: ' . mysqli_error($con));
    }if(mysqli_num_rows($query) > 0){
        $field = mysqli_fetch_assoc($query);
        echo($field['email']);

}else{
echo "error";
$conn->close();

Этот код отображал электронное письмо, и поэтому я приступил к замене переменной $ user на другое имя, и возникла первоначальная проблема, когда ничего не отображалось.

Я вернулся к исходному коду и вошел в систему как Eniola Olaogun, и электронное письмо было отражено, но как только я сменил человека, вошедшего в систему, электронное письмо не было отображено.

Я не уверен, почему я испытываю эту проблему, и некоторая помощь будет принята с благодарностью

Ответы [ 2 ]

0 голосов
/ 25 ноября 2018
$host = "localhost";
$dbusername = "root";
$dbpassword = "";
$dbname = "picshare";
$user = 'Eniola Olaogun';

$conn = new mysqli ($host, $dbusername, $dbpassword, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
else {
$sql = "SELECT email FROM login WHERE username= {$user}";
$result = $conn->query($sql); 

if($result->num_rows > 0) {
        $row = mysqli_fetch_array($result,MYSQLI_ASSOC);
        echo($row['email']);
}
else {
echo "error";
$conn->close();
0 голосов
/ 24 ноября 2018

ошибка подключения к базе данных mysql через сумасшедшие домены

Похоже, это проблема с правами доступа пользователя, вошедшего в систему как.

Протестируйте егос «корневым» паролем пользователя, который имеет глобальный доступ, а затем устраняет неполадки и изолирует его оттуда.Бьюсь об заклад, вы найдете его тогда.

Мне практически невозможно протестировать это удаленно, поскольку у меня нет схемы БД и учетных записей пользователей для проверки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...