• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wyciąganie z bazy danych zmiennej EXP

42 Warsaw Coding Academy
0 głosów
170 wizyt
pytanie zadane 12 sierpnia 2019 w SQL, bazy danych przez Kacperhehe Bywalec (2,930 p.)

Tak wygląda mój skrypt

$_SESSION['points'] = "SELECT exp FROM users WHERE username='$username'";

W taki sposób tabela

Chciałbym wyciągnąć kolumne EXP z użytkownika który jest aktualnie zalogowany.

Jakieś rady bo nic mi się nie pokazuje gdy używam echo

SKRYPT NA LOGOWANIE

// LOGIN USER
if (isset($_POST['login_user'])) {
  $username = mysqli_real_escape_string($db, $_POST['username']);
  $password = mysqli_real_escape_string($db, $_POST['password']);

  if (empty($username)) {
  	array_push($errors, "Username is required");
  }
  if (empty($password)) {
  	array_push($errors, "Password is required");
  }

  if (count($errors) == 0) {
  	$password = md5($password);
  	$query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
  	$results = mysqli_query($db, $query);
  	if (mysqli_num_rows($results) == 1) {
  	  $_SESSION['username'] = $username;
  	  $_SESSION['points'] = "SELECT exp FROM users WHERE username='$username'";
  	  $_SESSION['success'] = "You are now logged in";
  	  header('location: main.php');
  	}else {
  		array_push($errors, "Wrong username/password combination");
  	}
  }
}

Strona na której ma to się pokazać:

<? echo "Hello! ".$_SESSION['username']." You currently have ".$_SESSION['points']." points";?>

username się normalnie pokazuję.

2 odpowiedzi

0 głosów
odpowiedź 12 sierpnia 2019 przez Kacperhehe Bywalec (2,930 p.)

;///

0 głosów
odpowiedź 13 sierpnia 2019 przez Artek Stary wyjadacz (11,800 p.)

Wydaje mi się, że ty wcale nie pobierasz wiersza z wyników. O ile dobrze pamiętam powinieneś użyć czegoś takiego jak fetch_assoc - czyli właśnie pobieranie wiersza z całości wyników.

$row = mysqli_fetch_assoc($results);

Poza tym dziwne jest to, że najpierw masz zapytanie a potem coś takiego

$_SESSION['points'] = "SELECT exp FROM users WHERE username='$username'";

Po co znowu zapytanie, które i tak nie jest wysyłane do bazy? Jedno przecież już masz i masz wyniki. Tam powinna być kolumna exp.

$exp = $row['exp'];

Mam nadzieję, że nic nie pokręciłem. Pisałem na szybko z pamięci.

Podobne pytania

0 głosów
0 odpowiedzi 302 wizyt
pytanie zadane 2 czerwca 2019 w PHP przez Piotr Jarema Użytkownik (970 p.)
+1 głos
1 odpowiedź 397 wizyt
pytanie zadane 24 lutego 2022 w SQL, bazy danych przez Piotrek2713 Mądrala (5,520 p.)
0 głosów
1 odpowiedź 140 wizyt

93,383 zapytań

142,382 odpowiedzi

322,539 komentarzy

62,744 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...