IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Neaktualizování dat

Aktivity
Avatar
Matěj
Člen
Avatar
Matěj :29.8.2017 22:05

Ahoj,
mám vytvořený skript na přidávání hodnot do databáze ale mám menší problém. Body se přidají, ovšem na výpisu z databáze se změna projeví až po odhlášení a přihlášení uživatele. Jak mám docílit toho, aby se data ve výpisu změnila hned?
Díky předem

<?php
session_start();
require('Db.php');
Db::connect('PRIPOJENI DO DATABAZE');
if (!isset($_SESSION['uzivatel_id']))
{
    header('Location: ../index.php?sekce=2');
    exit();
}
if (isset($_GET['odhlasit']))
{
    session_destroy();
    header('Location: ../index.php?sekce=2');
    exit();
}
if(isset($_GET["obet"]))
{
    Db::querySingle('
                        UPDATE uzivatele
                        SET obet = "Meč", body = body + 1
                        WHERE uzivatele_id = 24;
                ');
    session_cache_expire();
    header('Location: ../index.php?sekce=1');
    exit();

}
?>

<section>
    <span>Vítej v Mafii ZŠ U Lesa, jsi přihlášen jako:</span> <span id="statistika"> <?= htmlspecialchars($_SESSION['uzivatel_jmeno']) ?></span><br>
    <span>Tvou obětí aktuálně je</span> <span id="statistika"> <?= htmlspecialchars($_SESSION['uzivatel_obet']) ?> </span><span><a href="/sekce/1.php?obet">Ukaž mi oběť!</a></span><br>
    <span>Právě máš</span> <span id="statistika"> <?= htmlspecialchars($_SESSION['uzivatel_body']) ?></span><span> bodů.</span><br>
    <ul id="odhlasit">
        <li><h2><a href="/sekce/1.php?odhlasit">Odhlásit</a></h2></li>
    </ul>
</section>
 
Odpovědět
29.8.2017 22:05
Avatar
Odpovídá na Matěj
Martin Konečný (pavelco1998):29.8.2017 22:12

Ahoj,

zřejmě proto, že si ty body ukládáš do session a v nich se ti ta hodnota neupraví.
Máš dvě řešení:

  1. po UPDATE v DB tu hodnotu upravit i v sessions
  2. vyhodit ze sessions body a ukládat si do nich jen neměnné hodnoty - jako třeba ID uživatele

Osobně jsem pro možnost b).

Edit: Takový doplněk - pokud datový typ sloupce 'body' je číslo, pak to z DB nemusíš procházet funkcí htmlSpecialChars(), protože ti tam žádné nebezpečné znaky nevzniknou. Pro jistotu s počítáním bych to raději přetypoval na číslo (z DB se to defaultně vrací jako řetězec).

Editováno 29.8.2017 22:13
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
29.8.2017 22:12
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Matěj
Člen
Avatar
 
Nahoru Odpovědět
29.8.2017 22:17
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.