• 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

VPS Starter Arubacloud
0 głosów
122 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 212 wizyt
pytanie zadane 2 czerwca 2019 w PHP przez Piotr Jarema Użytkownik (970 p.)
+1 głos
1 odpowiedź 244 wizyt
pytanie zadane 24 lutego 2022 w SQL, bazy danych przez Piotrek2713 Mądrala (5,320 p.)
0 głosów
1 odpowiedź 103 wizyt

92,452 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 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.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...