Как выбрать несколько данных из базы данных и назначить их в сеанс? - PullRequest
0 голосов
/ 24 сентября 2019

Я хочу выбрать данные из базы данных и назначить их сеансу.позже я хочу позвонить и использовать его ..

$sql = "SELECT * FROM users WHERE email = '$email' AND password = 
  '$password'";
  $query = mysqli_query($mysqli, $sql) or die ("Error: " . 
  mysqli_error($mysqli));
  $row = mysqli_num_rows($query);
  if($row == 0)
  {
     echo "Invalid Username/Password. Click here to <a href = 
     'login.html'>Login</a>";
  }
  else
  {
     $sql = "SELECT accname FROM account WHERE email = '$email'";
     $result=mysqli_query($mysqli,$sql);
     $row=mysqli_fetch_all($result,MYSQLI_BOTH);
     $_SESSION['accname']= array_column($rows, 'accname');
     $r = mysqli_fetch_assoc($query);
     $_SESSION['fname'] = $r['fname'];
     $_SESSION['lname'] = $r['lname'];
     $_SESSION['email'] = $r['email'];
     header("Location: dashboard.php");
   }

1 Ответ

0 голосов
/ 24 сентября 2019

Если у пользователя может быть несколько accname значений, связанных с его адресом электронной почты, вы можете использовать array_column для извлечения всех этих значений из ваших результатов:

$sql = "SELECT accname FROM account WHERE email = '$email'";
$result=mysqli_query($mysqli,$sql);
$rows=mysqli_fetch_all($result,MYSQLI_BOTH);
$_SESSION['accname']= array_column($rows, 'accname');

Если может быть толькоодин accname, вы можете просто изменить вызов на mysqli_fetch_all на mysqli_fetch_assoc:

$sql = "SELECT accname FROM account WHERE email = '$email'";
$result=mysqli_query($mysqli,$sql);
$row=mysqli_fetch_assoc($result);
$_SESSION['accname']= $row['accname'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...